@dlangru

Страница 38 из 719
Макс
16.07.2016
09:15:20
как в этом примере

для трёх случаев – три разные формы котёнков. различие делается по числу

регуляркой

вместо этого

Google
Макс
16.07.2016
09:16:08
у меня вот самодельный хардкод был такой string russianGenitive(T)(T n, in string one, in string two, in string five=null) if (isIntegral!T) { if (5 <= n && n <= 20) return five ? five : two; else { n = n % 10; if (n == 1) return one; else if (n == 2 || n == 3 || n == 4) return two; else return five ? five : two; } }

Pavel
16.07.2016
09:17:46
Я правил всех языков не знаю, так что не могу сказать )

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

Макс
16.07.2016
09:32:35
не знаю. если ошибся, то тем лучше, что уберу это из кода)))

Oleg
16.07.2016
09:50:22
Ох, да я сам наверное ошибся

Словоформы с числительными такие интересные только в именительном падеже

В остальных кажется все проще

Либо ед.ч., либо мн.ч.

При этом без числительных тоже всё просто

В именительном

Dmitry
16.07.2016
13:44:56
Вопрос на засыпку. А в делфи сборщик мусора есть?

Погуглил. Кажись нет

Google
Pavel
16.07.2016
13:51:57
http://stackoverflow.com/questions/4440841/garbage-collection-in-delphi ты прав

Вручную надо аллоцировать и освобождать память.

Вячеслав
17.07.2016
15:31:30
Без троянов, просто средствами веб, можно стырить чужие куки?

Макс
17.07.2016
15:36:02
По идее нет, браузеры за этим следят. Разве что на сайте-жертве найдётся страница, аналогичная phpinfo(), только с куками. Да и то непонятно как оттуда данные считать.

может, есть трюки, аналогичные трюку с анализом посещений чужих сайтов через скорость загрузки внешних <img/>, но мне в голову не приходит

Pavel
17.07.2016
15:39:00
Конечно можно, есть же всякие XSS/CSRF трюки и прочее

0x9d8e
18.07.2016
11:01:43
Конечно можно, есть же всякие XSS/CSRF трюки и прочее
Это уже не трюки, а дырки и атаки на них.

Конечно может быть сложновато ничего нигде не упустить (хотя за этим фреймворки следят), но принципиальной проблемы какбы нет.

Dmitry
22.07.2016
07:15:28
я всегда думал, что то что в скобках это значения которые метод принмает. Но тут наткнулся на такое: BOOL WINAPI GetFileSizeEx( _In_ HANDLE hFile, _Out_ PLARGE_INTEGER lpFileSize ); in - надо понимать входные данные, out выходные

как такое получается? В Ди такое возможно?

Макс
22.07.2016
07:24:35
А что это за _In_ и _Out_? Они где-то выше алиасами объявлены? Или это такие типы объявлены?

Alex
22.07.2016
07:31:02
мб там надо указатель на переменную

где аут

Макс
22.07.2016
07:31:55
Я вот и предполагаю, что этот тип объявлен как класс, а классы, как известно, передаются по ссылке.

Dmitry
22.07.2016
08:07:38
это в доке на сайте MS написано

https://msdn.microsoft.com/ru-ru/library/aa364957(v=vs.85).aspx

классы в С++ по ссылке же только. В D они вроде бы не ссылочные или наоборот?

Макс
22.07.2016
08:10:46
Классы по ссылке, структуры по значению. Это в D.

Dmitry
22.07.2016
08:13:03
в данном случае получается функция принимает указатель на данные?

Oleg
22.07.2016
08:13:27
это так просто не узнать из той сигнатуры, что ты скинул

Google
Oleg
22.07.2016
08:14:09
нужно смотреть как объявлены HANDLE и PLARGE_INTEGER

но скорее всего это указатели

мне кажется _In_ и _Out_ это просто для документации

чтобы было понятно что значение в _Out_ будет записываться

Dmitry
22.07.2016
08:16:10
ок понял

я правильно понимаю что в Ди недавно появились контейнеры? так? раньше типа не было?

Макс
22.07.2016
08:18:03
какие контейнеры?

Oleg
22.07.2016
08:21:06
да, какие контейнеры?

Dmitry
22.07.2016
08:21:51
https://dlang.org/phobos/std_container.html

в чем суть контейнеров кстати? обертки над типами данных?

Макс
22.07.2016
08:26:05
https://dlang.org/phobos/std_container.html
Видимо, в 2014 появился: https://github.com/dlang/phobos/commits/master/std/container/package.d

Dmitry
22.07.2016
08:26:35
а в чем их суть?

Макс
22.07.2016
08:29:45
Написано же вроде, Containers do not form a class hierarchy, instead they implement a common set of primitives. Просто функции для работы с массивами, я так понимаю.

Dmitry
22.07.2016
08:32:38
обертка высокоуровневая?

Oleg
22.07.2016
08:40:01
не совсем понятен вопрос... мне, по крайней мере

возьмём например https://dlang.org/phobos/std_container_rbtree.html

если был бы низкоуровневый интерфейс работы с деревом (руками балансировка, поворот и тд), то не было бы смысла в этой структуре как таковой

но с другой стороны все операции стандартные (вставка, удаление, поиск)

просто не совсем понятно, что значит "низкоуровневая обёртка" для алгоритма или структуры данных

Dmitry
22.07.2016
08:47:11
над данными для упрощения манипуляции с ними

Google
Oleg
22.07.2016
08:47:35
ну это низкоуровневый или высокоуровневый?

я понимаю что такое высокоуровневый интерфейс работы с джостиком, например

высокий уровень скрывает детали

но и там помимо деталей есть различие в реализации различного оборудования

что тоже скрывается высоким уровнем

а здесь просто реализована структура данных с алгоритмами работы над ней

если мы чуть спустимся, на один уровень, то мы просто получим "недоделанный" rbtree, например

Admin
ERROR: S client not available

Oleg
22.07.2016
08:49:47
да и какая разница?))))

вопрос из серии "а шины вы мне малиновым воздухом накачали?"

если ты получишь ответ "низкоуровневый", то какое решение ты на основе этой информации можешь принять?

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

если бы ты где-то встретил просто Storage какой-нибудь и от тебя было бы скрыто на основе какого типа данных он сделан, то это был бы высокий уровень

Dmitry
22.07.2016
08:52:58
так, я тогда суть контейнеров не могу понять для себя

в чем их фишка и где они нужны если простыми словами

Oleg
22.07.2016
09:06:53
ну блин

контейнер это коробка

в коробке ты что-то хранишь

просто эти коробки ещё сами что-то делать умеют

почитай про каждый из них

Google
Oleg
22.07.2016
09:07:42
они по разному хранят, вставляют, ищут

если ты не знаешь для чего они, тогда нет смысла их пробовать применять

их сначала нужно норм изучить

Денис
22.07.2016
09:10:53
Ну вот приведу пример

Лист и рбдерево

И туда, и туда пихаешь какие-то штуки

В лист ты будешь пихать за O(1) и вытаскивать тоже

Хотя нет, смотря откуда вытаскивать

Но поиск элемента за O(N)

А в рбтрии - все за логарифм

Вот и выбираешь под свою задачу в каком контейнере тебе удобнее и полезнее хранить

Dmitry
22.07.2016
09:37:40
получается я в коробку пихаю данные и внутри коробки описываю как с данными в ней работать? Это как итерация ranges так?

мы же во всех данные типа ranges описываеv правила работы с ними

Oleg
22.07.2016
09:38:55
нуу...

не совсем то

Денис
22.07.2016
09:39:04
Oleg
22.07.2016
09:39:25
rbtree может являться range

Dmitry
22.07.2016
09:39:29
т.е. фиксированный набор коробок?

Денис
22.07.2016
09:39:39

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