3 回答
TA贡献1869条经验 获得超4个赞
你Contact是一个匿名结构类型的字段。因此,您必须重复类型定义:
s := &Sender{
BankCode: "BC",
Name: "NAME",
Contact: struct {
Name string
Phone string
}{
Name: "NAME",
Phone: "PHONE",
},
}
但在大多数情况下,最好像 rob74 建议的那样定义一个单独的类型。
TA贡献1785条经验 获得超4个赞
分别定义两个结构体,然后在“Sender”中嵌入“Contact”怎么样?
type Sender struct {
BankCode string
Name string
Contact
}
type Contact struct {
Name string
Phone string
}
如果您这样做,您的第二次初始化尝试将起作用。此外,您可以单独使用“联系人”。
如果你真的想使用嵌套的结构,你可以使用Ainar-G的答案,但这个版本是不漂亮(和它会变得丑陋,如果结构进行了深入的嵌套,如图所示这里),所以我不会做如果可以避免的话。
TA贡献1809条经验 获得超8个赞
type NameType struct {
First string
Last string
}
type UserType struct {
NameType
Username string
}
user := UserType{NameType{"Eduardo", "Nunes"}, "esnunes"}
// or
user := UserType{
NameType: NameType{
First: "Eduardo",
Last: "Nunes",
},
Username: "esnunes",
}
- 3 回答
- 0 关注
- 199 浏览
添加回答
举报