Подтвердить что ты не робот

Несколько тегов для одного и того же элемента структуры Go

Я чувствую, что это должна быть небольшая проблема, но я пробовал все образцы, о которых я могу думать, и мне не повезло. У меня есть структура, которая должна кодироваться как с помощью пакетов encoding/json, так и github.com/zeebo/bencode. Он включает в себя канал, который не может быть закодирован ни одним пакетом. Таким образом, он должен нести тег "-", чтобы это поле было пропущено.

type Index struct {
    Data data
    Queue chan string `json:"-"`
}

Это допустимо при кодировании пакетом json, но не выполняется с пакетом bencode.

type Index struct {
    Data data
    Queue chan string `bencode:"-"`
}

Этот блок, конечно, имеет дополнительную проблему. Я пробовал теги синтаксиса типа json:"-",bencode:"-", *:"-", "-", -. Есть ли решение?

Спасибо всем.

4b9b3361

Ответ 1

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

Пример:

type TaggedStructExample struct {
    ...
    J int `datastore:",noindex" json:"j"`
}

От: https://developers.google.com/appengine/docs/go/datastore/reference#Properties

В вашем случае попробуйте:

type Index struct {
    Data data
    Queue chan string `bencode:"-" json:"-"`
}