Tôi cảm thấy như đây là một vấn đề nhỏ, nhưng tôi đã thử mọi mẫu mà tôi có thể nghĩ đến, và tôi không có may mắn. Tôi có một cấu trúc cần được mã hóa bởi cả các gói encoding/json
và github.com/zeebo/bencode
. Nó sẽ xảy ra để bao gồm một kênh, mà không thể được mã hóa bởi một trong hai gói. Vì vậy, nó cần phải mang theo thẻ "-"
, để trường đó bị bỏ qua.Nhiều thẻ trên cùng một thành viên cấu trúc Go
type Index struct {
Data data
Queue chan string `json:"-"`
}
Điều này hợp lệ khi được mã hóa theo gói json
nhưng không thành công với gói bencode
.
type Index struct {
Data data
Queue chan string `bencode:"-"`
}
Khối này, tất nhiên, có vấn đề miễn phí. Tôi đã thử các cú pháp thẻ như json:"-",bencode:"-"
, *:"-"
, "-"
, -
. Có giải pháp nào không?
Cảm ơn tất cả.
Đó là một điều tôi không thử! Cảm ơn nhiều. –
Từ http://golang.org/pkg/reflect/#StructTag: Theo quy ước, chuỗi thẻ là một nối của khóa được phân cách bằng dấu cách tùy chọn: cặp "giá trị". Mỗi khóa là một chuỗi không trống bao gồm các ký tự không điều khiển khác với dấu cách (U + 0020 ''), trích dẫn (U + 0022 '"') và dấu hai chấm (U + 003A ':'). sử dụng ký tự chữ U + 0022 '"' và chuỗi ký tự Go chuỗi. –
Nói cách khác, không gian là tùy chọn, nhưng không có dấu phân cách nào khác hoạt động. –