"fmt"
type MyStruct struct {
Name string
}
func (v *MyStruct) Intro() {
fmt.Println("my name is ", v.Name)
}
func tellHisName[T *MyStruct](v interface{}) {
v.(T).Intro()
}
func main() {
he := MyStruct{Name: "Bazil"}
tellHisName[*MyStruct](he)
}
Error: v.(T).Intro undefined (type T has no field or method Intro)
В Go нет возможности иметь один дженерик с разной специализацией, емнип. Потому не понятно, зачем в скобках конкретный тип. Там должен быть контракт (интерфейс? Не помню) с нужным методом.
Обсуждают сегодня