Go 结构体嵌套结构体切片
时间: 2023-10-11 13:10:57 浏览: 46
当一个结构体中嵌套另一个结构体切片时,我们可以通过以下方式定义:
```go
type InnerStruct struct {
Field1 string
Field2 int
}
type OuterStruct struct {
FieldA string
FieldB []InnerStruct
}
```
在上面的代码中,`OuterStruct` 中的 `FieldB` 是一个 `InnerStruct` 类型的切片。我们可以通过以下方式初始化和访问嵌套结构体切片:
```go
// 初始化 OuterStruct
outer := OuterStruct{
FieldA: "Hello",
FieldB: []InnerStruct{
{Field1: "World", Field2: 1},
{Field1: "Golang", Field2: 2},
},
}
// 访问 FieldB 中的第一个元素的 Field1 字段
fmt.Println(outer.FieldB[0].Field1) // Output: World
```
需要注意的是,当我们对嵌套结构体切片进行操作时,需要注意空切片的情况,避免出现空指针异常。