pair1 := StringPair{"abc","def"}
pair2 := StringPair{"ghi","jkl"}
point := Point{5, 7}
fmt.Println(pair1, pair2, point)
pair1.exchange()
pair2.exchange()
point.exchange()
fmt.Println(pair1, pair2, point)
// exchangeThese(pair1, pair2) //wrong
exchangeThese(pair1, pair2)
fmt.Println(pair1, pair2)
}
【go语言实例化 go语言实现接口】运行结果
在本例中,自定义类型StringPair和Point指针实现了接口Exchanger所需的方法,因此该类型的值可以被赋值给接口的值 。
另外,特别注意一点 。如果使用exchangeThese(pair1,
pair2)会导致编译错误(如下图),正确写法应当是exchangeThese(pair1,
pair2) 。这是由于真正满足接口Exchanger的类型是StringPair指针,而非StringPair 。
在golang中,值接收者和指针接收者的方法集是不同的 。只是golang会智能地解引用和取引用,使得二者的方法集看上去是一样的 。但是 , 在调用exchangeThese时,就凸显出二者的不同了 。
go语言实例化的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go语言实现接口、go语言实例化的信息别忘了在本站进行查找喔 。
推荐阅读
- 开心消消乐怎么下载到U盘,开心消消乐如何下载
- linux推出文件命令,linux从文件退出
- 少年模拟器游戏视频下载,青春少年模拟器
- sqlserver学什么软件,学好sql server能干啥
- linux查看补丁的命令 linux查看已安装的补丁
- c语言万年历方案设计,万年历c语言程序设计
- go语言圣经简体 go语言圣经 epub
- 如何开网店和电商,做电商就是开网店吗
- ppt文字怎么换行,把ppt转换成word纯文字