慕無忌1623718
2021-10-11 13:47:41
type NetworkInterface struct { Gateway string `json:"gateway"` IPAddress string `json:"ip"` IPPrefixLen int `json:"ip_prefix_len"` MacAddress string `json:"mac"` ...}我很困惑反引號中內容的功能是什么,比如json:"gateway".它只是評論//this is the gateway嗎?
2 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
它們是標簽:
字段聲明后可以跟一個可選的字符串文字標記,它成為相應字段聲明中所有字段的屬性。這些標簽通過反射接口可見,并參與結構的類型標識,否則會被忽略。
// A struct corresponding to the TimeStamp protocol buffer.
// The tag strings define the protocol buffer field numbers.
struct {
microsec uint64 "field 1"
serverIP6 uint64 "field 2"
process string "field 3"
}
有關更詳細的解釋和答案,請參閱此問答。
該反引號用來創建它可以包含任何類型的字符的原始字符串字面量:
原始字符串文字是反引號 `` 之間的字符序列。在引號內,除反引號外,任何字符都是合法的。

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
您可以以標簽的形式向 Go 結構體添加額外的元信息。以下是一些用例示例。
在這種情況下,json:"gateway"使用由JSON包到的值編碼Gateway到所述鍵gateway中相應的JSON對象。
例子:
n := NetworkInterface{
Gateway : "foo"
}
json.Marshal(n)
// will output `{"gateway":"foo",...}`
- 2 回答
- 0 關注
- 434 瀏覽
添加回答
舉報
0/150
提交
取消