查看这个沙箱 https://play.golang.org/p/elIHgHAZjT
声明从不同结构继承的结构时:
type Base struct {
a string
b string
}
type Something struct {
Base
c string
}
然后调用为继承值指定值的函数会出现编译错误:
f(Something{
a: "letter a",
c: "letter c",
})
错误信息是:unknown Something field 'a' in struct literal
.
这对我来说似乎很奇怪。这真的是预期的功能吗?
谢谢您的帮助!
Golang 不提供典型的继承概念。您在这里完成的是嵌入。
它不会向外部结构提供内部结构的字段,而是允许外部结构访问内部结构的字段。
为了创建外部结构Something
您需要提供包含内部结构的字段Base
在你的情况下:
Something{Base: Base{a: "letter a"}, c: "letter c"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)