Вопрос: Как работают generics + интерфейсы: constraint с методами?
Go
Junior
Без компании
Вопрос: Как работают generics + интерфейсы: constraint с методами?
Ответы
Constraint может требовать методы. Тогда T гарантированно поддерживает эти методы.
```go
package main
import "fmt"
type Stringer interface {
String() string
}
func PrintAll[T Stringer](items []T) {
for _, it := range items {
fmt.Println(it.String())
}
}
type User struct{ Name string }
func (u User) String() string { return "User:" + u.Name }
func main() {
PrintAll([]User{{"Ann"}, {"Bob"}})
}
```