Go: interface
结构体的接口实现方法参数为指针类型时,会报编译错误
package main type USB interface { method() } type Vale struct { } func (vale *Vale) method() { // 指针类型 println("vale method") } func main() { var vale Vale = Vale{} // var usb USB = vale var usb USB = &vale // 实现方法为指针类型时, 把vale地址赋给接口类型变量 usb.method() }
Extend VS Interface:
package main type Monkey struct { Name string } func (monkey *Monkey) climb() { println("monkey climb") } type Flyable interface { fly() } type Swimable interface { swim() } type LittleMonkey struct { Monkey } func (m *LittleMonkey) fly() { println(m.Name, "fly") } func (m *LittleMonkey) swim() { println(m.Name, "swim") } func main() { monkey := LittleMonkey{ Monkey{ Name: "vaginal", }, } monkey.climb() var swim Swimable = &monkey swim.swim() var fly Flyable = &monkey fly.fly() }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-05-18 npm
2021-05-18 MySQL: Pagination