ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 接口嵌入 > **接口嵌入,又叫接口组合,其他语言中叫继承。我早就感觉这个接口结构体就和py中的类很像,都是方法的组合** ``` package main import "fmt" // 声明一个接口 type One interface { Sing() } // 声明一个接口 type Tow interface { One Dance() } // 声明一个接口 type Three interface { One Teach() } // 声明一个结构体 type Aa struct { Name string } //声明方法 func (aa *Aa) Sing() { fmt.Println(aa.Name + "会唱歌") } //声明方法 func (aa *Aa) Dance() { fmt.Println(aa.Name + "会跳舞") } //声明结构体 type Bb struct { Name string } //声明方法 func (bb *Bb) Sing() { fmt.Println(bb.Name + "会唱歌") } //声明方法 func (bb *Bb) Teach() { fmt.Println(bb.Name + "在学习跳舞") } func main() { // 实例化结构体 var aa Aa = Aa{"Pony"} var bb Bb = Bb{Name: "LiMing"} // 操控方法 aa.Sing() aa.Dance() bb.Sing() bb.Teach() } 结果: Pony会唱歌 Pony会跳舞 LiMing会唱歌 LiMing在学习跳舞 ``` 我解释一下,定义了三个接口,One,Two,Three,定义了两个结构体,Aa,Bb。其中 Two和Three 都嵌入了 One 接口,拥有了 One接口里面的Sing() 方法。而上面案例结构体Bb要实现One接口里面的Sing()方法,就要实现One接口才行。但是我发现,不嵌入One一样可以实现,是不是出现bug了。我才估计官方更新了,因为 我研究也感觉麻烦