Должен ли я использовать теги struct, когда имена сериализованных полей совпадают? - PullRequest
0 голосов
/ 11 февраля 2020

Должен ли я объявить свою структуру следующим образом:

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

Или в этом нет необходимости, поскольку значения, которые я получу от XML Маршаллер будет таким же (в данном случае) с или без указания тегов?

PS Я знаю, что если мне нужно определенное поведение c, например, добавить какое-либо значение в качестве атрибута, я должен использовать

`xml:"xmlns,attr"`
``` . I'm asking only about this specific, probably the most simple case.

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете go об этом, но здесь есть конус:

Вы будете сериализовать эту структуру в XML, которая обычно используется в контрактах API или в качестве полезной нагрузки для внешней зависимости. Когда вы указываете теги, вы указываете имена полей полезной нагрузки и не зависят от имен ваших кодовых переменных.

Это сохраняет вашу полезную нагрузку и Go Struct отделенными и является очень масштабируемым подходом.

Кроме этого, я не думаю, что есть разница в производительности, независимо от того, используете ли вы тег или нет.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...