在Golang中,嵌套结构是一种非常常见的用法,它可以让我们在复杂的数据结构中轻松、简洁地访问和操作各个成员。
嵌套结构的定义
首先,让我们来看一个简单的嵌套结构的定义和初始化例子:
type Address struct {
city string
country string
}
type Person struct {
name string
age int
address Address
}
AddressPersonAddresscitycountryPersonnameageaddressPersonAddress
Person
person := Person{
name: "Tom",
age: 18,
address: Address{
city: "Beijing",
country: "China",
},
}
fmt.Println(person.name, person.age, person.address.city, person.address.country)
// Tom 18 Beijing China
PersonAddressPersonPersonperson.address.city
除了直接定义嵌套结构体作为属性,我们还可以在结构体中使用匿名嵌套结构体。
type Person struct {
name string
age int
Address
}
AddressPersonPerson
person := Person{
name: "Tom",
age: 18,
Address: Address{
city: "Beijing",
country: "China",
},
}
嵌套结构的访问
person.address.city
type Person struct {
name string
age int
address struct{
city string
state string
}
}
person := Person{
name: "Tom",
age: 18,
address: struct{city, state string}{"Beijing", "China"},
}
PersoncitystatePerson
Person属性名结构体名属性名