@dlangru

Страница 266 из 719
Dmitry
14.09.2017
07:27:33
а сборщик мусора про malloc будет что-то знать?

Maxim
14.09.2017
07:28:08
какая у тебя конкретно задача-то?

Dmitry
14.09.2017
07:28:50
да я пока просто пытаюсь понять, если я работаю с большим набором данных, то как избежать лишних аллокаций. к примеру если я из БД буду брать в структуры сотни тысяч значений

Google
Maxim
14.09.2017
07:29:40
auto arr = new MyStruct[480];
если ты заранее знаешь количество структур, которые тебе нужны, то так

а потом оперировать отдельными элементами arr[0] = foo; arr[1] = bar; и так далее

Dmitry
14.09.2017
09:07:34
Кто вайбом пользовался в чем фишка WebInterface ? router.registerWebInterface(new WebInterface);

а кажется дошло. типа чтобы скрестиь rest и diet шаблоны

"The front end web interface generator automatically maps incoming query or POST form fields to method parameters" Только для полей формы получается?

Maxim
14.09.2017
10:32:36
а для чего еще надо?

Dmitry
14.09.2017
10:32:57
ну просто если поля формы не планируются использовать. и весь обмен на JSON будет

Maxim
14.09.2017
10:34:26
тут какое дело, через POST и GET можно передать только то, что называется полями формы)

Dmitry
14.09.2017
10:34:44
но JSON это же не поле формы...

Maxim
14.09.2017
10:35:02
ага, и его на сервер никак не передашь)

только как значение какого-нибудь поля

Dmitry
14.09.2017
10:35:21
не понял %)

Maxim
14.09.2017
10:35:50
а как ты представляешь себе передачу json серверу?

Google
Dmitry
14.09.2017
10:36:12
ну просто летит пакет с заголовком JSON

Maxim
14.09.2017
10:36:28
куда летит?)

Dmitry
14.09.2017
10:36:35
с сайта на сервер

Oleg
14.09.2017
10:36:43
"хватай, а то улетит"

Maxim
14.09.2017
10:37:07
сайт — это всего лишь то, что сервер передал тебе

к серверу ты можешь обратиться с http-запростом

самые распространенные — это GET и POST)

точно сейчас не помню, всего методов запросов http 9 или 10, и у каждого из них есть свой конкретный формат

Dmitry
14.09.2017
10:39:11
ну, а поле формы как я понимаю кодируется именно как поле формы <form> ... </form>

Maxim
14.09.2017
10:40:17
форма может передаваться на сервер либо как query string — это те самые ?foo=bar&baz=ololo, либо в теле запроса POST

если форма application/x-www-form-urlencoded, то тело запроса выглядит так же, как и query string, если multipart/form-data, то все сложнее)

короче, те самые формы, которые мы видим на страницах сайтов — это некие абстракции переменных, передаваемых от клиента к серверу

Dmitry
14.09.2017
10:42:57
я что-то идею не уловлю, но у JSON же другой вид т.е. JSON это не форма

Maxim
14.09.2017
10:44:54
от сервера к клиенту ты можешь передать json, просто выставив mime и вывалив его в теле ответа, так же, как это делается с html или любой другой лабудой

передать так же данные на сервер не получится, потому что нет такого в протоколе

Dmitry
14.09.2017
10:45:45
не, понятно дело что нет, просто все же JS либами делается

я просто пытаюсь понять Web interface generator это вообще только для статики сделано?

Maxim
14.09.2017
10:46:23
понятия не имею)

я просто говорю, что он не сможет замапить некий json, потому что протокол http о таком ничего не знает)

Dmitry
14.09.2017
10:47:11
а все, понял о чем ты)

Google
Ievgenii
14.09.2017
11:15:14
PUT запрос делай

И все

Dmitry
14.09.2017
11:21:33
И что это даст?

Ievgenii
14.09.2017
15:10:16
Ну если нужно загружать json

То это PUT запрос

Pavel
14.09.2017
16:49:31
В запросе можно сформировать тело в виде json

Maxim
14.09.2017
16:56:33
Ну если только в put, и это должен поддерживать сервер, насколько я понимаю

Pavel
14.09.2017
16:58:41
В post тоже можно

Ну если кто и не поддерживает так это плохие серверные фреймворки какие то. Тело это просто все что начинается от \r\n\r\n и до конца content-length

Ievgenii
14.09.2017
20:06:10
Контент Лен не всегда есть)

Если это HTTP 1.1

Andrey
15.09.2017
06:42:54
из массива правильно делать удаление элемента как-то так: arr = arr.remove(0) ?

или есть еще варианты?

Maxim
15.09.2017
06:46:35
варианты есть, но говорят, что .remove — самый правильный)

Andrey
15.09.2017
06:47:06
получается что если делать просто arr.remove(0), то размер массива не уменьшается

и нужно присваивать, чтобы =пересчиталось=

Maxim
15.09.2017
06:49:13
arr = arr.remove(0);

Dmitry
15.09.2017
06:49:36
почему remoму сам не может дернуть изменение длинны?

Maxim
15.09.2017
06:49:59
это как?

Google
Dmitry
15.09.2017
06:50:28
чтобы не нужно было arr = arr.remove(0)

Andrey
15.09.2017
06:50:43
в С++ remove тоже требуют потом бубна

Maxim
15.09.2017
06:51:06
Dmitry
15.09.2017
06:51:26
Просто : arr.remove(0)

Maxim
15.09.2017
06:51:41
remove берет Range, который ему дали, удаляет из него элемент и возвращает новый Range

Dmitry
15.09.2017
06:51:53
А, понял

Andrey
15.09.2017
06:52:41
в векторах C++ erase в векторе как-то попонятней (:

Maxim
15.09.2017
06:56:29
попривычней, наверное)

в D, я так понимаю, плотно налегают на идею неизменности данных

Admin
ERROR: S client not available

Maxim
15.09.2017
06:58:45
в большинстве случаев, если ты передаешь в недра какой-то функциональности Range, ты можешь быть уверен, что Range не изменится

Andrey
15.09.2017
06:58:55
да. непривычно то, что remove в std.array нет

а потом ищешь-читаешь, оказывается ,что оно немного в другом месте

Maxim
15.09.2017
06:59:14
потому что remove работает с Range)

а Range — это как итераторы только лучше)

Andrey
15.09.2017
07:00:11
std.algorithm.remove удаляет на месте

Maxim
15.09.2017
07:01:08
да вот только что проверял, не удаляет

тот, который лежит в std.algorithm.mutation

Andrey
15.09.2017
07:01:50
я уже испроверялся весь за пару дней (: только присваиванием и спасаюсь (:

Google
Andrey
15.09.2017
07:02:04
Note that remove does not change the length of the original range directly; instead, it returns the shortened range. If its return value is not assigned to the original range, the original range will retain its original length, though its contents will have changed

Maxim
15.09.2017
07:02:39
а блин, вижу, ну жопа тогда

Andrey
15.09.2017
07:04:27
ну вот я через это напрягаюсь слегка, да

Maxim
15.09.2017
07:05:08
сомнительное решение с их стороны)

Andrey
15.09.2017
07:05:47
либо в контейнеры уйти. но в контейнеры не хочется. опять же - что мешало сделать то же самое, что в контейнерах, в обычных массивах?

Maxim
15.09.2017
07:07:21
вся стандартная библиотека затачивается под использование Ranges, чтобы не городить огород

если какой-то тип данных удовлетворяет понятию Range, его можно обрабатывать как Range

Andrey
15.09.2017
07:09:12
я, как уже понятно, в D начинающий, даже точнее - любопытствующий. до Range плотно пока не дошел, но если есть такая идеология, то и пусть.

Maxim
15.09.2017
07:10:07
ну и все проверки сделаны на уровне шаблонов и проверки наличия нужных функций или методов, т.е. Range не завязан ни на что, это получается некая абстракция)

Andrey
15.09.2017
07:10:41
Duck Typing

Maxim
15.09.2017
07:11:37
Duck Typing
ну вот @deviator говорит, что это никакой не Duck Typing, хотя по факту он и есть)

Dmitry
15.09.2017
07:23:30
Я тут в инете увидел очень приятный по виду исходник. Еще втыкаю и думаю: язык какой хороший D напоминает. Все логично пишется. Оказалось Swift.

Stepanos
15.09.2017
07:28:10
Я тут в инете увидел очень приятный по виду исходник. Еще втыкаю и думаю: язык какой хороший D напоминает. Все логично пишется. Оказалось Swift.
повезло) знаю пачку иосников, которьіе пишут в стиле "c-object", ужасная читабельность получается

Dmitry
15.09.2017
07:34:24
Про массивы. А что подобная запись означает auto a = array([1, 2, 3, 4, 5][]); в конце пустые квадратные скобки

Andrey
15.09.2017
07:38:40
пять int-массивов?

Dmitry
15.09.2017
07:39:46
разве пять int массивов не так записываются? int [] [5] x; ?

Andrey
15.09.2017
07:41:09
ну я запилил a ~= ["1111"]; получил Error: cannot append type string[] to type int[]

(:

сделал a ~= [1111]; - скомпилировалось

Dmitry
15.09.2017
07:47:47
А можно руками задать новый capacity? https://dlang.org/phobos/std_array.html#.Appender.capacity Я пробовал так. Но не дает скопилиться: int [] arr = [1,2,3,4,5]; arr.capacity = 100;

он же вроде имеет @property т.е. к нему можно как к переменной образаться

Maxim
15.09.2017
07:49:41
судя по всему, это не lvalue, и его нельзя изменить)

а какой смысл вообще именно capacity задавать?

Страница 266 из 719