学习内容:
1、匿名字段
2、嵌套结构体及数据初始化
3、匿名嵌套结构体及数据初始化
4、匿名嵌套结构体的字段冲突
结构体匿名字段概念:结构体允许其成员字段在声明时没有字段名字而只有类型
package main
import "fmt"
type person struct {
name string
age int64
addr address //*****结构体嵌套******
}
type address struct {
province string
city string
}
type company struct {
name string
level string
address //*****匿名嵌套******
// work //***匿名嵌套,存在重复键,访问不可以p2.city
}
type work struct{
city string
}
func main() {
//嵌套结构体初始化
var p = person{name: "dba",
age: 11,
addr: address{
province: "cn",
city: "bj",
},
}
//fmt.Println(p)
//获取dba的城市
fmt.Println(p.name, p.addr.city)
//GO 有个语法糖特点,若要直接访问另外结构体的成员,如p.city,可以通过匿名嵌套
//匿名嵌套结构体数据实例化
var p2 = company{
name: "dba2",
level: "pe",
address: address{
province: "bj-2",
city: "bj",
},
}
fmt.Println(p2.city)
//多个匿名嵌套结构体,存在重复,访问需要写全访问名称,格式如:
fmt.Println(p2.address.city)
}