Size: a a a

2021 March 09

KD

Kitsune Digital in ru.nim.talks
@QMaster @azarie_1 @d_ment давайте, унижайте меня!
источник

f

for(int c; (c = getc... in ru.nim.talks
Эм
источник

f

for(int c; (c = getc... in ru.nim.talks
Это мне кажется самый часто встречающиеся вариант
источник

KD

Kitsune Digital in ru.nim.talks
for(int c; (c = getchar()) != EOF;)
Это мне кажется самый часто встречающиеся вариант
Кто-нибудь пните меня в сторону того, что считается у нас идиоматическим
источник

f

for(int c; (c = getc... in ru.nim.talks
Тут вообще не к чему прикопаться, половина кода с дискриминатами так выглядит
источник

f

for(int c; (c = getc... in ru.nim.talks
Kitsune Digital
Вот скажите мне, насколько сильно я буду гореть в аду за такое:
type
 EntityObj = object
   case kind: EntityKind
   of enCreature: creature: Creature
   of enItem: item: Item
   of enStruct: structure: Structure
Это достаточно 'идиоматический'
источник

f

for(int c; (c = getc... in ru.nim.talks
Хотя тут зависит от того что нужно понятное дело
источник

KD

Kitsune Digital in ru.nim.talks
for(int c; (c = getchar()) != EOF;)
Это достаточно 'идиоматический'
т.е. вместо того чтоб делать базовый класс entity и от него наследовать народ делает так?
источник

f

for(int c; (c = getc... in ru.nim.talks
Да. Если иерархия ограниченная то это проще быстрее и не надо мазать пять отдельных наследований по коду
источник

f

for(int c; (c = getc... in ru.nim.talks
Если подразумевается что потом там поведение нужно как-то переопределять пользователем то я предпочитаю делать поле с коллбеком и ставить туда что мне нужно
источник

f

for(int c; (c = getc... in ru.nim.talks
Опять же вместо того чтобы плодить классы на каждый чих. std/streams так сделаны + поведение можно настраивать на уровне экземпляра что иногда тоже бывает полезно
источник

KD

Kitsune Digital in ru.nim.talks
for(int c; (c = getchar()) != EOF;)
Если подразумевается что потом там поведение нужно как-то переопределять пользователем то я предпочитаю делать поле с коллбеком и ставить туда что мне нужно
Мне надо обобщить несколько типов объектов для хранения и некоторых общих для всех них действий.
источник

KD

Kitsune Digital in ru.nim.talks
В крестах и питоне у мне они наследовали бы общее
источник

f

for(int c; (c = getc... in ru.nim.talks
Да, это именно то для чего дискриминанты подходят
источник

f

for(int c; (c = getc... in ru.nim.talks
Ещё кстати они не требуют указателей, RTTI и всего прочего для работы.
источник

KD

Kitsune Digital in ru.nim.talks
Как что-то сделать в ниме, пункт 0: забудьте всю херню про ООП что вы знали после петона и крестов
источник

KD

Kitsune Digital in ru.nim.talks
for(int c; (c = getchar()) != EOF;)
Ещё кстати они не требуют указателей, RTTI и всего прочего для работы.
Вааще структура из инта+юниона структур это типичный Си-стайл ООП
источник

f

for(int c; (c = getc... in ru.nim.talks
Ну да. Оно даже компилируется в что-то такое потом
источник

KD

Kitsune Digital in ru.nim.talks
Но как-то неажиданна такое видеть в смузихлёбском недоязычке для хипстеров с подворотами
источник

f

for(int c; (c = getc... in ru.nim.talks
Kitsune Digital
Но как-то неажиданна такое видеть в смузихлёбском недоязычке для хипстеров с подворотами
Ну araq где-то говорил что вообще лучше использовать дискриминанты везде где можно вместо ООП/методов так как они удобнее/быстрее практически во всех случаях
источник