3 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
你Contact是一個(gè)匿名結(jié)構(gòu)類型的字段。因此,您必須重復(fù)類型定義:
s := &Sender{
BankCode: "BC",
Name: "NAME",
Contact: struct {
Name string
Phone string
}{
Name: "NAME",
Phone: "PHONE",
},
}
但在大多數(shù)情況下,最好像 rob74 建議的那樣定義一個(gè)單獨(dú)的類型。

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
分別定義兩個(gè)結(jié)構(gòu)體,然后在“Sender”中嵌入“Contact”怎么樣?
type Sender struct {
BankCode string
Name string
Contact
}
type Contact struct {
Name string
Phone string
}
如果您這樣做,您的第二次初始化嘗試將起作用。此外,您可以單獨(dú)使用“聯(lián)系人”。
如果你真的想使用嵌套的結(jié)構(gòu),你可以使用Ainar-G的答案,但這個(gè)版本是不漂亮(和它會(huì)變得丑陋,如果結(jié)構(gòu)進(jìn)行了深入的嵌套,如圖所示這里),所以我不會(huì)做如果可以避免的話。

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
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 關(guān)注
- 223 瀏覽
添加回答
舉報(bào)