Size: a a a

2020 June 08

VM

Vladislav Milenin in Go-go!
V L
Аргументов за указатель так и не появилось, эх
Чем пилить лишний метод и выделять память под структуру для несуществующего ответа, проще перейти к указателям и проверять на nil
источник

VM

Vladislav Milenin in Go-go!
И зачем вам двоим отвечать, если из контраргументов «морочиться» и «будет паника при обращении» итак ясно, что решение костыльное
источник

VL

V L in Go-go!
Vladislav Milenin
Чем пилить лишний метод и выделять память под структуру для несуществующего ответа, проще перейти к указателям и проверять на nil
Вместо метода всегда можно вернуть ошибку. Про выделять память - смешно, т.к. только усложняем escape analysis и, скорее всего, делаем только хуже по памяти.
источник

Н

Никита in Go-go!
Костыль - что мы не может объявить nullable переменную/поле в Го. Не будь с этим проблем, было бы ок
источник

AS

Andrei 🦉 Sergeev in Go-go!
Никита
В том то и дело. Была бы возможность вернуть nil без поинтера - так бы и делал
а своя реализация Optional не будет лучше?
источник

Н

Никита in Go-go!
Andrei 🦉 Sergeev
а своя реализация Optional не будет лучше?
Думал. Но как это сделать красиво?
источник

AS

Andrei 🦉 Sergeev in Go-go!
Никита
Думал. Но как это сделать красиво?
красиво в го - только кодогенерацией)
источник

Н

Никита in Go-go!
Andrei 🦉 Sergeev
красиво в го - только кодогенерацией)
К сожалению:(
источник

AS

Andrei 🦉 Sergeev in Go-go!
но я не думаю, что вам нужно сотни структур в Optional заворачивать, а для нескольких можно и руками покопипастить
источник

VM

Vladislav Milenin in Go-go!
V L
Вместо метода всегда можно вернуть ошибку. Про выделять память - смешно, т.к. только усложняем escape analysis и, скорее всего, делаем только хуже по памяти.
Как переход к указателю мешает возврату ошибки?
Escape analysis ок, но лучше словить панику/явно проверять на nil, чем забыть проверку и использовать дефолтные значения))
источник

VL

V L in Go-go!
Никита
Костыль - что мы не может объявить nullable переменную/поле в Го. Не будь с этим проблем, было бы ок
На самом деле в go объявить Nil значение для объекта и возвращать его вполне распространненая практика.
источник

AS

Andrei 🦉 Sergeev in Go-go!
в общем то реализация в go-swagger нулабельных и обязательных значений через поинтеры, а не через Optional - его самая большая проблема
источник

AS

Andrei 🦉 Sergeev in Go-go!
у нас просто тонна поинтеров на пустом месте из-за этого
источник

VM

Vladislav Milenin in Go-go!
Тонна поинтеров - другая проблема
Но пустая структура чтобы избежать паники - это говнокод
источник

VL

V L in Go-go!
Нет, поинтер ради поинтера - говнокод. Пустая структура - допустимое решение.
источник

h

helsingf♂rce in Go-go!
Vladislav Milenin
В питоне нет типизации, сравнение 😂
И там указатели под капотом
ложь, там строгая динамическая
источник

p

pragus in Go-go!
Никита
Мы же потом должны делать дереференс. И еще менять другие методы, чтобы принимали поинтер, либо передавать &note, как по мне выглядит плохо
а, и зачем вы interface{} возвращаете?
источник

AS

Andrei 🦉 Sergeev in Go-go!
helsingf♂rce
ложь, там строгая динамическая
может сильная* динамическая?
источник

VM

Vladislav Milenin in Go-go!
V L
Нет, поинтер ради поинтера - говнокод. Пустая структура - допустимое решение.
Удачи дебажить решения с Exists и пустыми структурами) для джунов то еще минное поле
источник

h

helsingf♂rce in Go-go!
Andrei 🦉 Sergeev
может сильная* динамическая?
монопенисуально, насколько знаю
источник