package main
import "fmt"
type Stringer interface {
String() string
}
type Struct1 struct {
field1 string
}
func (s Struct1) String() string {
return s.field1
}
type Struct2 struct {
field1 []string
dummy bool
}
func (s Struct2) String() string {
return fmt.Sprintf("%v, %v", s.field1, s.dummy)
}
type StringerContainer struct {
Stringer
}
func main() {
fmt.Println(StringerContainer{Struct1{"This is Struct1"}})
fmt.Println(StringerContainer{Struct2{[]string{"This", "is", "Struct1"}, true}})
}
或者
结果: