面试题答案
一键面试package main
import "fmt"
// 定义结构体A
type A struct {
Field1 string
Field2 int
}
// 定义结构体B,嵌套结构体A
type B struct {
A
Field3 float64
}
func main() {
// 方式一:直接初始化
var b1 B
b1.Field1 = "value1"
b1.Field2 = 10
b1.Field3 = 3.14
fmt.Printf("b1: %+v\n", b1)
// 方式二:使用复合字面量初始化
b2 := B{
A: A{
Field1: "value2",
Field2: 20,
},
Field3: 2.718,
}
fmt.Printf("b2: %+v\n", b2)
// 方式三:先初始化A,再初始化B
a := A{
Field1: "value3",
Field2: 30,
}
b3 := B{
A: a,
Field3: 1.618,
}
fmt.Printf("b3: %+v\n", b3)
}