embedding.go 602 B

12345678910111213141516171819202122232425262728
  1. package main
  2. import (
  3. "fmt"
  4. )
  5. // 定义一个结构体,它内嵌了 fmt.Stringer 接口
  6. type MyStruct struct {
  7. Name string
  8. fmt.Stringer // 嵌入接口
  9. }
  10. // 实现 fmt.Stringer 接口(让 MyStruct 自己成为 Stringer)
  11. func (m MyStruct) String() string {
  12. return fmt.Sprintf("MyStruct{Name: %s}", m.Name)
  13. }
  14. func main() {
  15. // 创建一个 MyStruct 实例
  16. ms := MyStruct{Name: "HelloKitty"}
  17. // 调用 String() 方法(它自己实现了 fmt.Stringer)
  18. fmt.Println(ms.String())
  19. // 也可以把它当作 fmt.Stringer 使用
  20. var s fmt.Stringer = ms
  21. fmt.Println(s.String())
  22. }