Golang 嵌套结构

在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属性名结构体名属性名