golang structs 定义中反引号的用法是什么?

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吗?


慕无忌1623718
浏览 391回答 2
2回答

哔哔one

它们是标签:字段声明后可以跟一个可选的字符串文字标记,它成为相应字段声明中所有字段的属性。这些标签通过反射接口可见,并参与结构的类型标识,否则会被忽略。// 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

您可以以标签的形式向 Go 结构体添加额外的元信息。以下是一些用例示例。在这种情况下,json:"gateway"使用由JSON包到的值编码Gateway到所述键gateway中相应的JSON对象。例子:n := NetworkInterface{   Gateway : "foo"}json.Marshal(n)// will output `{"gateway":"foo",...}`
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go