- 1
Конструктор по умолчанию?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
Конструктор по умолчанию?
Не, не слышали.
Рефлексией итерируемся по свойствам и вызываем функцию инициализации полей ))))))))))))))
guest6 22.08.2022 13:11 # 0
guest6 22.08.2022 13:15 # 0
а что за яп?
guest6 22.08.2022 13:16 # 0
guest6 22.08.2022 13:24 # 0
в говне нет конструкторов, там можно присвоить значения полям по умолчанию, либо сделать функцию, которая заполняет нужную тебе херню
guest6 22.08.2022 13:28 # 0
Я хочу проинициализировать все Detali по умолчанию = []int{1,2,3}, как мне это сделать?
guest6 22.08.2022 14:56 # 0
и кстати я напиздел, значения по умолчанию присвоить нельзя
guest6 22.08.2022 15:00 # 0
guest6 22.08.2022 15:01 # 0
guest6 22.08.2022 15:05 # 0
guest6 22.08.2022 15:07 # 0
guest6 22.08.2022 15:11 # 0
ты бугуртишь от отсутствия коснтрукторов по умолчанию в Го, и рефлексия это единственное решение
j123123 22.08.2022 15:28 # 0
Soul_re@ver 22.08.2022 15:38 # 0
j123123 22.08.2022 15:55 # 0
А вообще, для подобного рода хуйни нужен говномеханизм для инспекции структур, т.е. чтобы тип структуры можно было обходить как дерево, который бы можно было в компилтайме использовать и через него делать синтез неких функций. Чтоб такую хуйню не только для каких-то "конструкторов" использовать, а вообще хуй пойми для чего. Короче, надо чтоб гомоиконность.
guest6 22.08.2022 15:58 # 0
гомоиконность нужна
Steve_Brown 22.08.2022 16:01 # 0
close enough.
kcalbCube 17.12.2022 10:03 # 0
guest6 22.08.2022 15:56 # 0
j123123 24.08.2022 05:44 # 0
А в крестах можно написать нечто для автоматического печатанья хуйни, если для вложенной хуйни определены методы печатанья хуйни?
Ну допустим есть класс для точки в декартовых координатах:
Я например хочу чтобы если я напишу класс с кучей точек
И чтобы если у переменных внутри класса нет метода print_shit(), то тогда пусть компиляция ломается
j123123 24.08.2022 05:58 # 0
guest6 24.08.2022 09:46 # 0
Почему ты не пишешь на lisp?
bootcamp_dropout 24.08.2022 08:48 # 0
j123123 24.08.2022 09:24 # 0
bootcamp_dropout 24.08.2022 09:56 # 0
guest6 24.08.2022 09:57 # 0
bootcamp_dropout 24.08.2022 10:21 # 0
Если пистон компилируется 0 секунд и падает в рантайме а кресты компилсяются 30 секунд и падают во время компиляции, то кажется что питон с точки зрения продуктивности оптимальнее
guest6 24.08.2022 10:24 # 0
Кроме того, проверка в рантайме тоже занимает время
bootcamp_dropout 24.08.2022 10:27 # 0
Во втором случае неочевидно, будет ли программа написана в принципе
guest6 24.08.2022 10:31 # 0
Если это софт для авионики, то я предпочел бы второй вариант:)
bootcamp_dropout 24.08.2022 10:24 # 0
На коке или идрисе никто особо не пишет
guest6 24.08.2022 10:30 # 0
Но у j123, насколько я понимаю, горит от половинчатости решения: в С++ завезли какую-то метушню, которой можно решить несколько задач. Потом начали добавлять костыли, по костылю на каждый кейс (std::is_хуе_мое).
j123 предлагает решить проблему на корню, а не ставить костыли.
Но конечно это всё не бесплатно: статическеий анализ такого кода всегда будет тюринг полным и IDE будут сосать
j123123 24.08.2022 18:05 # 0
Статический анализ крестоговна и так тьюринг-полный т.к. шаблонопарашное метапрограммирование уже есть, и оно тьюринг-полное. И constexpr-ы кстати тоже тьюринг-полные
guest6 24.08.2022 18:13 # 0
Тут более-ли-менее четкая граница между метаговном, и говном. А в случае полной гомоиконности её же не будет
j123123 24.08.2022 10:00 # 0
guest6 24.08.2022 09:52 # +1
Грубо гря так (птичий язык)
CkpunmoBbIu_nemyx 24.08.2022 09:47 # 0
j123123 24.08.2022 09:56 # 0
guest6 24.08.2022 09:59 # 0
Пробежаться по всем полям, и проверить их по случайному условию вроде бы никак нельзя?
guest6 24.08.2022 10:04 # 0
Еще десять лет назад по говнокоду бегал петух, и говорил, что дескать в С++ два разных языка (для комплайт тайма и для рантайма) и что он вынужден два раза писать одно и тоже, как сраных ПХПшник, который пишет бизнес-логику один раз на ПХП, второй раз на джаваскрипте, и потом еще в mysql тоже самое пишет, и что не плохо бы в С++ как-то унякфицировать всё
Слово "Гомоиконность" еще тогда не было тут зафорщено
guest6 22.08.2022 15:40 # 0
guest6 22.08.2022 16:06 # 0
j123123 22.08.2022 16:25 # 0
Покажи-ка мне, как C++ решает задачу из https://govnokod.ru/27403#comment626280
guest6 22.08.2022 16:29 # 0
Я уж молчу о том, что компилятор может твои локлаьные переменные и вовсе уконтропупить
j123123 22.08.2022 16:32 # 0
guest6 22.08.2022 16:37 # 0
А какой язык (кроме гомоиконных типа лиспа) это решает?
j123123 22.08.2022 16:51 # 0
В языке D это можно было б легко решить, если там через рефлекшен можно каким-то образом получить список локальных переменных
https://dlang.org/phobos/std_traits.html - но подобной хуйни я что-то не вижу. Там есть какие-то блядь isAbstractClass, isAbstractFunction, isCallable, isDelegate и прочие "isPituz", но способа получить локальные переменные, доступные в таком-то там месте какой-то функции там похоже что нет.
Т.е. в D это простым способом не решается, но кое-как черезжопно это все ж можно решить, через миксины и написание парсера
j123123 22.08.2022 16:58 # 0
Но сам ты такого говна написать не можешь, не влазя в кишки компилятора. А если б была гомоиконность, ты б что угодно мог нахуевертить. Поэтому я за гомоиконность
guest6 22.08.2022 17:01 # 0
guest6 22.08.2022 17:31 # 0
https://jmusacchio.github.io/blog/2016/groovy-ast-transformations/
j123123 22.08.2022 18:57 # 0
guest6 22.08.2022 15:07 # +1
guest6 22.08.2022 22:37 # 0
nyTuH_nugop-Govno 22.08.2022 23:03 # 0
guest6 23.08.2022 00:15 # 0
guest6 23.08.2022 09:57 # 0
guest6 23.08.2022 01:56 # 0
https://twitter.com/microrjomba/status/1559878324582862851
ISO 23.08.2022 08:57 # +1
bootcamp_dropout 23.08.2022 09:56 # 0
guest6 23.08.2022 09:59 # 0
guest6 23.08.2022 10:09 # 0
bootcamp_dropout 23.08.2022 10:26 # 0
nyTuH_nugop 23.08.2022 09:52 # 0