为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕无忌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"

}

有关更详细的解释和答案,请参阅此问答。


该反引号用来创建它可以包含任何类型的字符的原始字符串字面量:


原始字符串文字是反引号 `` 之间的字符序列。在引号内,除反引号外,任何字符都是合法的。


查看完整回答
反对 回复 2021-10-11
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您可以以标签的形式向 Go 结构体添加额外的元信息。以下是一些用例示例。


在这种情况下,json:"gateway"使用由JSON包到的值编码Gateway到所述键gateway中相应的JSON对象。


例子:


n := NetworkInterface{

   Gateway : "foo"

}

json.Marshal(n)

// will output `{"gateway":"foo",...}`


查看完整回答
反对 回复 2021-10-11
  • 2 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信