(18条消息) Go语言自学系列 | golang接口嵌套_COCOgsta的博客-CSDN博客_golang 接口嵌套



Go语言自学系列 | golang接口嵌套

COCOgsta 于 2022-04-25 19:15:59 发布 16 收藏
分类专栏: 视频学习笔记 文章标签: golang

视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客


接口可以通过嵌套,创建新的接口。例如:飞鱼,既可以飞,又可以游泳。我们创建一个飞Fly接口,创建一个游泳接口Swim,飞鱼接口由这两个接口组成。

飞Fly接口

  1. 1
    type Flyer interface {
  2. 2
    fly()
  3. 3
    }

创建Swimmer接口

  1. 1
    type Swimmer interface {
  2. 2
    swim()
  3. 3
    }

组合一个接口FlyFish

  1. 1
    type FlyFish interface {
  2. 2
    Flyer
  3. 3
    Swimmer
  4. 4
    }

创建一个结构体Fish

  1. 1
    type Fish struct {
  2. 2
    }

实现这个组合接口

  1. 1
    func (fish Fish) fly() {
  2. 2
    fmt.Println("fly...")
  3. 3
    }
  4. 4
  5. 5
    func (fish Fish) swim() {
  6. 6
    fmt.Println("swim...")
  7. 7
    }
  8. 8

测试

  1. 1
    package main
  2. 2
  3. 3
    import "fmt"
  4. 4
  5. 5
    type Flyer interface {
  6. 6
    fly()
  7. 7
    }
  8. 8
  9. 9
    type Swimmer interface {
  10. 10
    swim()
  11. 11
    }
  12. 12
  13. 13
    type FlyFish interface {
  14. 14
    Flyer
  15. 15
    Swimmer
  16. 16
    }
  17. 17
  18. 18
    type Fish struct {
  19. 19
    }
  20. 20
  21. 21
    func (fish Fish) fly() {
  22. 22
    fmt.Println("fly...")
  23. 23
    }
  24. 24
  25. 25
    func (fish Fish) swim() {
  26. 26
    fmt.Println("swim...")
  27. 27
    }
  28. 28
  29. 29
    func main() {
  30. 30
    var ff FlyFish
  31. 31
    ff = Fish{}
  32. 32
    ff.fly()
  33. 33
    ff.swim()
  34. 34
    }

运行结果

  1. 1
    [Running] go run "d:\SynologyDrive\软件开发\go\golang入门到项目实战\goproject\360duote.com\pro01\test.go"
  2. 2
    fly...
  3. 3
    swim...

yg9538 July 22, 2022, 10:48 p.m. 307 收藏文档