package main import ( "fmt" "math" ) type geometry interface { area() float64 perim() float64 } type square struct { width, height float64 } type circle struct { radius float64 } //要在 go 中实现一个接口,我们只需要实现接口中的所有方法 //`square`的实现,s接收者接受了area()方法 func (s square) area() float64 { return s.width * s.height } //`square`的实现,s接收者接受了perim()方法 func (s square) perim() float64 { return 2*s.width + 2*s.height } //`circle`的实现,c接收者接受了area()方法 func (c circle) area() float64 { return math.Pi * c.radius * c.radius } //`circle`的实现,c接收者接受了perim()方法 func (c circle) perim() float64 { return 2 * math.Pi * c.radius } //如果一个变量或者参数是接口类型,那么我们可以调用这个被命名的接口中的方法 func measure(g geometry) { fmt.Println(g) fmt.Println(g.area()) fmt.Println(g.perim()) } func main() { //定义并初始化square、circle struct,可以理解为结构体的实例?结构体的接收者? s := square{width: 3, height: 4} c := circle{radius: 5} measure(s) measure(c) } //output: {3 4} 12 14 {5} 78.53981633974483 31.41592653589793
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Dart语言最佳实践
- 【语言模型系列】实践篇:ALBERT在房产领域的实践
- GO语言泛型编程实践
- 探探长链接项目的 Go 语言实践
- Go 语言在百度 App 中的实践
- 我们必须遵循的 12 个 Go 语言最佳实践
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
禅与摩托车维修艺术
(美)罗伯特·M.波西格 / 张国辰 / 重庆出版社 / 2011-9 / 36.00元
在一个炎热的夏天,父子两人和约翰夫妇骑摩托车从明尼苏达到加州,跨越美国大陆,旅行的过程与一个青年斐德洛研修科学技术与西方经典,寻求自我的解脱,以及探寻生命的意义的过程相互穿插。一路上父亲以一场哲学肖陶扩的形式,将见到的自然景色,野外露营的经历,夜晚旅店的谈话,机车修护技术等等日常生活与西方从苏格拉底以来的理性哲学的深入浅出的阐述与评论相结合,进行了对形而上学传统的主客体二元论的反思,以及对科学与艺......一起来看看 《禅与摩托车维修艺术》 这本书的介绍吧!