Не удалось распаковать неподдерживаемый тип - PullRequest
0 голосов
/ 21 октября 2018

Например, при попытке упорядочить XML, возьмите такую ​​структуру:это следует игнорировать.Тем не менее, самое большее, что я нашел, это атрибут omitempty, который здесь недопустим.Каждая попытка упорядочить структуру терпит неудачу.

Я рассмотрел следующее:

  1. Создание нового типа функции и присоединение метода MarshalXML.
  2. Создание новой структуры и копирование каждого поля вручную в новую структуру перед маршалингом.
  3. Присоединение метода MarshalXML к самой структуре примера.
  4. Создание C неэкспортированным атрибутом и затем установка его внутрисоответствующего пакета.

Все это далеко не идеально, но 4) представляется наиболее привлекательным.Я открыт для любых других предложений о маршалинге структуры, игнорируя при этом C.

Любой из них не идеален, поскольку оставляет

1 Ответ

0 голосов
/ 21 октября 2018

Установка тега поля структуры "xml" на - предотвратит маршалинг поля, как отмечено в документации :

Элемент XML для структурысодержит маршалированные элементы для каждого из экспортируемых полей структуры, за исключением:

....

  • поле с тегом "-" опущено.
type Example struct{
    A int
    B int
    C func() int `xml:"-"`
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...