如何使用另一个结构的字段
创建结构struct box {
x int
y int
}
struct textbox {
BOXVALUES
text string
}
答案 0 :(得分:3)
Go没有像Java这样的继承概念,你可以说文本框是box的子项,因此继承了它的字段。
所以你可以这样做: type box struct { x int y int }
type textbox struct {
box
text string
}
通过指定不带结构字段名称的类型box
,您可以复制box
struct int textbox
中定义的字段。但是,在构建过程中,您仍然必须将box
字段明确初始化为:
t := textbox {
box: box{
x: 1,
y: 2,
},
text: "aoeu",
}
但是,您不再需要在box
中引用textbox
进行访问,例如:
println(t.x)
Go在这方面有点奇怪,因为struct
不是一个对象,所以textbox
实际上并不从box
继承,而是将其复制到其中,并附带一些语法糖用于访问
答案 1 :(得分:2)
我们至少有两种方式:
案例1:名为Embed
struct textbox {
box
text string
}
案例2:包含子结构
struct textbox {
boxValue box
text string
}
但我认为你应该学习基础课。这是一个基本概念。
答案 2 :(得分:-1)
不熟悉GO ......但考虑到你想要的语法
struct textbox
{
BOXVALUES box
text string
}
根据你给出的语法,结构应该由
组成fieldname DataType
在Textbox的示例中,您缺少DataType ...如int,string,float等。您的box结构基本上是一个新的DataType,因此您可以使用它来代替DataType的位置。