gpt4 book ai didi

go - 当序列化字段的名称相同时,我应该使用结构标签吗?

转载 作者:行者123 更新时间:2023-12-01 22:34:46 26 4
gpt4 key购买 nike

我应该这样声明我的结构:

type User struct {
FirstName string `xml:"FirstName"`
LastName string `xml:"LastName"`
PhoneNumber string `xml:"PhoneNumber"`
Email string `xml:"FirstName"`
Id string `xml:"Id"`
}

或者没有必要这样做,因为我从 XML Marshaller 收到的值将是相同的(在这种情况下),有或没有指定标签?

附言我知道如果我需要一些特定的行为,比如添加一些值作为属性,我应该使用
`xml:"xmlns,attr"`
``` . I'm asking only about this specific, probably the most simple case.

最佳答案

你可以去做,但这里有一个骗局:

您将将此结构序列化为 XML,这通常用于 API 契约(Contract)或作为外部依赖项的有效负载。当您指定标签时,您指定了有效负载字段名称,并且不依赖于您的代码变量名称。

这使您的有效负载和 Go Struct 解耦,并且是一种可扩展的方法。

除此之外,我认为无论您是否使用标签,都没有任何性能差异。

希望这可以帮助。

关于go - 当序列化字段的名称相同时,我应该使用结构标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60166059/

26 4 0