结构体嵌套
type Person struct {
name string
age int
}
type Student struct {
p Person //结构体类型
score float32
}
func main() {
s := Student{
Person{
"wang", 19,
},
29,
}
fmt.Println(s.p, s.score)
}//s.p.name
{wang 19} 29
匿名嵌套
s.==p==.name 想不走p类型直接取到p的成员变量
type Student struct {
Person //不写成员变量名字
score float32
}
func main() {
s := Student{
Person{
"wang", 19,
},
29,
}
fmt.Println(s.name, s.age) //直接取到Person成员
}
wang 19
嵌套内部相同的变量名优先级小于嵌套外部
type Person struct {
name string
age int
}
type Student struct {
Person
name string
}
func main() {
s := Student{
Person{
"wang", 19,
},
"tao",
}
fmt.Println(s.name)
}
tao
对相同名字的变量赋值或操作 优先使用的是外部结构体的变量。
评论