我應(yīng)該這樣聲明我的結(jié)構(gòu):type User struct { FirstName string `xml:"FirstName"` LastName string `xml:"LastName"` PhoneNumber string `xml:"PhoneNumber"` Email string `xml:"FirstName"` Id string `xml:"Id"`}或者沒(méi)有必要這樣做,因?yàn)槲覐?XML Marshaller 收到的值將是相同的(在這種情況下),有或沒(méi)有指定標(biāo)簽?PS我知道如果我需要一些特定的行為,比如添加一些值作為屬性,我應(yīng)該使用`xml:"xmlns,attr"```` . I'm asking only about this specific, probably the most simple case.
1 回答

森欄
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
你可以去做,但這里有一個(gè)騙局:
您將將此結(jié)構(gòu)序列化為 XML,這通常用于 API 合同或作為外部依賴(lài)項(xiàng)的有效負(fù)載。當(dāng)您指定標(biāo)簽時(shí),您指定了有效負(fù)載字段名稱(chēng),并且不依賴(lài)于您的代碼變量名稱(chēng)。
這使您的有效負(fù)載和 Go Struct 解耦,并且是一種可擴(kuò)展的方法。
除此之外,我認(rèn)為無(wú)論您是否使用標(biāo)簽,都沒(méi)有任何性能差異。
希望這可以幫助。
- 1 回答
- 0 關(guān)注
- 104 瀏覽
添加回答
舉報(bào)
0/150
提交
取消