9.20Go之初始化内嵌结构体
内嵌结构体的初始化方法
结构体内嵌初始化时,将结构体内嵌的类型作为字段名像普通结构体一样进行初始化
类似匿名结构体的初始化方法,可以选择具体需要初始化的成员:
示例代码:
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)
}
    It's a lonely road!!!
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号