gpt4 book ai didi

Golang 结构继承没有按预期工作?

转载 作者:IT王子 更新时间:2023-10-29 01:06:24 26 4
gpt4 key购买 nike

查看 this sandbox

当声明一个继承自不同结构的结构时:

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"}

关于Golang 结构继承没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34644117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com