Go 指南学习笔记九 发表于 2017-09-15 | 分类于 golang | 1.接口,接口为一组方法定义的集合 和其它语言不同,类型实现接口不需要显示声明,不需要implements关键字 定义接口和实现接口互不依赖 1234567891011121314151617181920212223242526272829303132333435type Abser interface { Abs() float64}type MyFloat float64func (f MyFloat) Abs() float64 { if f < 0 { return float64(-f) } return float64(f)}type Vertex struct { X, Y float64}func (v *Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y)}func main() { var a Abser f := MyFloat(-math.Sqrt2) v := Vertex{3, 4} a = f // a MyFloat 实现了 Abser a = &v // a *Vertex 实现了 Abser // 下面一行,v 是一个 Vertex(而不是 *Vertex) // 所以没有实现 Abser。 a = v fmt.Println(a.Abs())} 如果您觉得对您有帮助,谢谢您的赞赏! 打赏 微信支付 本文作者: badwolf 本文链接: http://www.badwolfbay.cn/2017/09/15/go-e6-8c-87-e5-8d-97-e5-ad-a6-e4-b9-a0-e7-ac-94-e8-ae-b0-e4-b9-9d/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!