golang语法总结(二十):struct组合

Go的struct可以嵌入组合其它struct,有点像是继承,下面是示例:
 
    
type human struct {
Sex int
}
type person struct {
human //嵌入结构,只需要写出结构类型
Name string
Age int
}
func main() {
a := person{
Name:"cpwl",
Age : 21,
human : human{ //默认用嵌入结构类型名作为字段名
Sex : 1,
},
}
fmt.Println(a) //{{1} cpwl 21}
//默认把嵌入结构的字段都给了外层结构,可以直接访问与赋值
fmt.Println(a.Sex) //1
//保留用嵌入结构类型名作为字段名的方式,
//是为了防止多个嵌入结构有相同字段名,发生冲突
fmt.Println(a.human.Sex) //1
}

你可能感兴趣的:(Golang)