Size: a a a

2020 June 17

s

sexst in Go-go!
Так что нужно. Просто это не нужно для http бэкендов
источник

s

sexst in Go-go!
Eduard Tkachuk
Мне кажется лучше писать нормальный код с минимальной рефлексией
Не все задачи на это ложатся адекватно. Приходится использовать рефлексию и interface{}. А последний, давайте откровенно, - самый дубовейший костыль, закрывающий официальное отсутствие дженериков. И рефлексия суть есть "Пока мы тут думаем нужно ли оно нам и как это сделать, вот вам станок для собирания велосипедов"
источник

ET

Eduard Tkachuk in Go-go!
Я читал про дженерики, там несколько подходов к их реализации
источник

s

sexst in Go-go!
Кода, использующего interface{} до сих пор просто вагонами, а вариантов падения у него ещё больше
источник

ET

Eduard Tkachuk in Go-go!
Посмотрим что покажут нам авторы в 2021
источник

EK

Eugene Koshevoy in Go-go!
источник

ЗА

Заур Ашурбеков... in Go-go!
лол, привет сигнатурам типа
func (g *Graph(Node, Edge)) SomeFuncName (type Node NodeConstraint(Edge), Edge EdgeConstraint(Node)) (n Node, e Edge) (gRes *Graph(Node, Edge), err Error) {

}
источник

A

Aikidos in Go-go!
Судя по абзацам, "Why not use the syntax F<T> like C++ and Java?" и "Why not use the syntax F[T]?", люди не смогли решить синтаксическую омонимию. Это забавно.
источник

E

Evgeny in Go-go!
Eduard Tkachuk
Мне кажется Go хорош и не нужно туда все это тянуть
Это нужно для того, чтобы писать более безопасный код.
Пустые интерфейсы приводят вот к таким уродствам: https://golang.org/src/context/context.go#L514
А вручную и копипастами далеко не всё можно описать, не говоря уже о всем извесоных проблемах копирования кода.
источник

s

sexst in Go-go!
Evgeny
Это нужно для того, чтобы писать более безопасный код.
Пустые интерфейсы приводят вот к таким уродствам: https://golang.org/src/context/context.go#L514
А вручную и копипастами далеко не всё можно описать, не говоря уже о всем извесоных проблемах копирования кода.
Да с копированием кода проблем то нет.
Проблемы потом, когда нужно поправить что-то в реализации и ты правишь в 9 местах из 10)
источник

s

sexst in Go-go!
В девяти потому что одно обязательно забудется
источник

S

Serj in Go-go!
ну не факт же, что добавят дженерики. сами гугловцы пишут в блоге выше, что они сами не знают, нужно ли это вообще, поэтому они изучают эту область и собирают фидбэк.
если народ засопротивляется, ну и не будет дженериков
источник

с

сонная википедия... in Go-go!
sexst
Кода, использующего interface{} до сих пор просто вагонами, а вариантов падения у него ещё больше
там помимо дженериков еще и контракты, а это несколько больше чем просто параметрические типы, можно писать такие штуки
contract SignedInteger(T) {
 T int, int8, int16, int32, int64
}
источник

с

сонная википедия... in Go-go!
Evgeny
Это нужно для того, чтобы писать более безопасный код.
Пустые интерфейсы приводят вот к таким уродствам: https://golang.org/src/context/context.go#L514
А вручную и копипастами далеко не всё можно описать, не говоря уже о всем извесоных проблемах копирования кода.
код копируются в любом случае, go2go умеет в translate из Go2 в Go, если посмотреть выхлоп — будет просто сгенерированно много типов с типом в имени
источник

с

сонная википедия... in Go-go!
зато compile-time
источник

с

сонная википедия... in Go-go!
зато теперь вряд ли соберешь большой проект за пару минут
источник

AS

Alex Sibyakin in Go-go!
контракты отменили, их не будет
источник

с

сонная википедия... in Go-go!
Alex Sibyakin
контракты отменили, их не будет
там написано что они заменили их на интерфейсы, не суть.
к тому же
Interface types are now permitted to include type lists
источник

с

сонная википедия... in Go-go!
Заур Ашурбеков
лол, привет сигнатурам типа
func (g *Graph(Node, Edge)) SomeFuncName (type Node NodeConstraint(Edge), Edge EdgeConstraint(Node)) (n Node, e Edge) (gRes *Graph(Node, Edge), err Error) {

}
можно использовать просто

func (g *Graph(Node, Edge)) SomeFuncName(n Node, e Edge) (gRes *Graph(Node, Edge), err Error) {

}
источник

A

Aikidos in Go-go!
Serj
ну не факт же, что добавят дженерики. сами гугловцы пишут в блоге выше, что они сами не знают, нужно ли это вообще, поэтому они изучают эту область и собирают фидбэк.
если народ засопротивляется, ну и не будет дженериков
Скорее всего добавят. Уже давно эта тема крутится. Будет интересно посмотреть, что люди начнут с ними делать. Появятся ли в проектах итераторы. У каждого своя реализация. Или быстро появятся пакеты, которые станут стандартами.
источник