亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

初始化嵌套結構定義

初始化嵌套結構定義

Go
哈士奇WWW 2021-08-30 14:42:44
你如何初始化以下結構?type Sender struct {    BankCode string    Name     string    Contact  struct {        Name    string        Phone   string    }}我試過:s := &Sender{        BankCode: "BC",        Name:     "NAME",        Contact {            Name: "NAME",            Phone: "PHONE",        },    }沒有用:mixture of field:value and value initializersundefined: Contact我試過:s := &Sender{        BankCode: "BC",        Name:     "NAME",        Contact: Contact {            Name: "NAME",            Phone: "PHONE",        },    }沒有用:undefined: Contact
查看完整描述

3 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

你Contact是一個匿名結構類型的字段。因此,您必須重復類型定義:


s := &Sender{

    BankCode: "BC",

    Name:     "NAME",

    Contact: struct {

        Name  string

        Phone string

    }{

        Name:  "NAME",

        Phone: "PHONE",

    },

}

但在大多數情況下,最好像 rob74 建議的那樣定義一個單獨的類型。


查看完整回答
反對 回復 2021-08-30
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

分別定義兩個結構體,然后在“Sender”中嵌入“Contact”怎么樣?


type Sender struct {

    BankCode string

    Name     string

    Contact

}


type Contact struct {

    Name  string

    Phone string

}

如果您這樣做,您的第二次初始化嘗試將起作用。此外,您可以單獨使用“聯系人”。


如果你真的想使用嵌套的結構,你可以使用Ainar-G的答案,但這個版本是不漂亮(和它會變得丑陋,如果結構進行了深入的嵌套,如圖所示這里),所以我不會做如果可以避免的話。


查看完整回答
反對 回復 2021-08-30
?
海綿寶寶撒

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",

}


查看完整回答
反對 回復 2021-08-30
  • 3 回答
  • 0 關注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號