struct {
}
func (asd *Asd) myMethod[T any](values ...T) any {
return nil
}
syntax error: method must have no type parameters
Короткий ответ, "потому что потому" (так придумали) Более длинный - методы нужны, чтобы реализовать интерфейсы. И не придумано, как собственно методы с дженериками подружить с интерфейсами
Это ничего не обясняет. Тем более почему нельзя сделать такой интерфейс? type Qwe interface { myMethod[T any](values ...T) any } Тогда бы как раз была б такая реализация type Asd struct { } func (asd *Asd) myMethod[T any](values ...T) any { return nil }
возможно тебе нужно это: func (asd *Asd[T any]) myMethod(values ...T) any { return nil }
Так тоже не сработает. Сейчас делаю как-то так: type Asd[T any, S types.Struct] struct { } func (asd *Asd[T]) myMethod(values ...T) any { return nil } func (asd *Asd[S]) myMethod2(values ...S) any { return nil } По сути то же самое, но как то костыльно.
Зараза, так тоже не работает.
Обсуждают сегодня