Golang 结构体中的promoted字段
在Go结构中,promoted字段就像匿名字段一样,字段的类型就是字段的名字。我们在嵌套结构中使用这个概念,一个结构是另一个结构中的字段,只需在另一个结构中加入该结构的名称,它的行为就像嵌套结构中的匿名字段。而该结构的字段(除嵌套结构外)是嵌套结构的一部分,这种类型的字段被称为 Promoted fields。如果匿名结构或嵌套结构和父结构包含一个具有相同名称的字段,那么该字段不会被promoted,只有不同名称的字段才会被promoted到该结构。
语法
让我们借助于一个例子来讨论这个概念。
例子
输出
解释: 在上面的例子中,我们有两个结构,分别是details和student。其中details结构是普通结构,student结构是嵌套结构,它包含details结构中的字段,就像匿名字段一样。现在,details结构中的字段,即姓名、年龄和性别被提升到student结构中,被称为提升字段。现在,你可以在学生结构的帮助下直接访问这些字段,如 values.name , values.age , 和 values.gender 。