大家好,今天小编来为大家解答以下的问题,关于Interfaces这个很多人还不知道,现在让我们一起来看看吧!
接口类型被定义为一组方法签名 。

文章插图
接口类型的值可以包括实现这些方法的任何值 。
package mainimport (& 34;& 34;)type 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 Abserf := MyFloat(-math.Sqrt2)v := Vertex{3, 4}a = f// a MyFloat implements Absera = &v // a *Vertex implements Abser// In the following line, v is a Vertex (not *Vertex)// and does NOT implement Abser.a = vfmt.Println(a.Abs())}
注意:第22行的示例代码中有一个毛病 。Vertex(值类型)不实现Abser , 由于Abs方法仅在*Vertex(指针类型)上定义 。
【Interfaces】关于“Interfaces”的内容,小编就分享到这里了,大家还有哪些需要补充的呢?无妨在评论区留言分享,让更多的朋友受益!您的每一个留言,和每一个赞,都是我前进的动力!喜欢的话记得收藏、分享给身旁的朋友 。
- 什么是“笑气”
- 民间祭灶风俗的简介
- 孙世杰和吴月红
- 中元节由来和风俗
- 下雨声……并不是龙吟
- 李靓蕾学历背景暴光,集颜值与能力于一身
- 情为什么物?在仕途眼前一文不值。
- 家境一般也有好就业的专业,发展前景也不差,家长可以参考
- 后世对历史的猎奇心理
- 确实的凭证价值