Golang 在使用匿名成員初始化時,如果出現
mixture of field:value and value initializers
是因為初始化的方式不對,見代碼:
package main import ( "fmt" ) type Person struct { Name string Age int Sex string } type Student struct { Person Id string Grade string } func main() { s1 := Student{Person: Person{Name: "張三", Age: 13, Sex: "男"}, Id: "13321", Grade: "三年級"} fmt.Printf("%+v\n", s1) s2 := Student{Person{"張三", 13, "男"}, "12312", "三年級"} fmt.Println(s2) s3 := Student{Person{Name: "張三", Age: 13, Sex: "男"}, Id: "13321", Grade: "三年級"} //報錯 mixture of field:value and value initializers(字段的混合:值和值初始化器) fmt.Println(s3) }
s3直接導致代碼編譯不過去,想要指定字段就必須按 s1的方式 Person:Person{xxx:"xxx"},要么就不指定按照s2的方式