一尘不染

Go结构字段的第三个参数是什么?

go

type Config struct {
    CommitIndex uint64 `json:"commitIndex"`
    // TODO decide what we need to store in peer struct
    Peers []*Peer `json:"peers"`
}

我知道前两列是什么,但是什么json:"commitIndex"


阅读 252

收藏
2020-07-02

共1个答案

一尘不染

它称为struct标记,可以reflect在运行时使用包对其进行解析。

来自https://golang.org/ref/spec#Struct_types

字段声明后可以跟一个可选的字符串文字标签,该标签成为相应字段声明中所有字段的属性。

这些标记通过反射接口可见,并参与结构的类型标识,但否则将被忽略。

一些使用反射的包(例如)jsonxml使用标签来更好地处理特殊情况。

2020-07-02