Files
deep_go/lessons/generics_and_reflection/constraint_with_method/main.go

30 lines
441 B
Go
Raw Normal View History

package main
type Stringer interface {
String() string
}
func ToString[T Stringer](values ...T) []string {
result := make([]string, 0, len(values))
for idx := range values {
result = append(result, values[idx].String())
}
return result
}
type Data struct{}
func (d Data) String() string {
return "string"
}
func main() {
data := Data{}
var idata Stringer = data
_ = ToString(data)
_ = ToString(idata)
_ = ToString(100)
}