内嵌结构体的初始化方法
结构体内嵌初始化时,将结构体内嵌的类型作为字段名像普通结构体一样进行初始化
类似匿名结构体的初始化方法,可以选择具体需要初始化的成员:
示例代码:
package main
import "fmt"
/*
定义三个结构体
*/
type Wheel struct {
Size int
}
type Engine struct {
Power int //功率
Type string //类型
}
//结构体:车
type Car struct {
//内嵌结构体
Wheel
Engine
}
func main() {
//初始化结构体Car同时初始化内嵌的结构体
c := Car{
//吃实话内嵌的结构体,视内嵌的结构体为成员进行初始化
Wheel:Wheel{
Size: 18,
},
//初始化另一个内嵌结构体,视为成员
Engine:Engine{
Power: 100,
//可以选择成员进行初始化
},
}
//打印c
fmt.Println(c)
}
初始化内嵌匿名结构体
package main
import "fmt"
type WheelNo2 struct {
size int
}
/*
该结构体内内嵌一个匿名结构体
*/
type CarNo2 struct {
WheelNo2
//引擎
EngineNo2 struct{
Power int
Type string
}
}
func main() {
//初始化最外层结构体变量
c := CarNo2{
WheelNo2:WheelNo2{
22,
},
//因为EngineNo2是匿名内嵌结构体,所以使用初始化匿名结构体的方法
EngineNo2: struct {
Power int
Type string
}{Power: 100, Type: "大功率"},
}
fmt.Println(c)
}