分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
[https://play.golang.org/p/kTvcsWkJeaZ](https://play.golang.org/p/kTvcsWkJeaZ)
````
package main
type T1 struct {
}
func (T1) Hello(T1) {
}
type T2 struct {
T1
}
func (T2) Hello(T2) {
}
type T3 T2
type T4 = T2
func main() {
var v_T3 T3
v_T3.Hello(v_T3)
var v_T4 T4
v_T4.Hello(v_T4)
}
````
prog.go:21:12: cannot use v_T3 (type T3) as type T1 in argument to v_T3.T1.Hello
go version go1.11.2 linux/amd64
程序如上.在21行,golang为何会去调用v_T3.T1.Hello而不是v_T3.Hello方法呢?
v_T3.Hello(v_T3)会报错
v_T4.Hello(v_T4)就不会
请大佬解惑,跪谢~
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1051 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传