type Config struct { CommitIndex uint64 `json:"commitIndex"` // TODO decide what we need to store in peer struct Peers []*Peer `json:"peers"` }
我知道前两列是什么,但是什么json:"commitIndex"?
json:"commitIndex"
它称为struct标记,可以reflect在运行时使用包对其进行解析。
reflect
来自https://golang.org/ref/spec#Struct_types:
字段声明后可以跟一个可选的字符串文字标签,该标签成为相应字段声明中所有字段的属性。 这些标记通过反射接口可见,并参与结构的类型标识,但否则将被忽略。
字段声明后可以跟一个可选的字符串文字标签,该标签成为相应字段声明中所有字段的属性。
这些标记通过反射接口可见,并参与结构的类型标识,但否则将被忽略。
一些使用反射的包(例如)json并xml使用标签来更好地处理特殊情况。
json
xml