Go 标签

示例

结构字段可以具有与之关联的标签。reflect程序包可以读取这些标签,以获取开发人员为某个字段指定的自定义信息。

struct Account {
    Username      string `json:"username"`
    DisplayName   string `json:"display_name"`
    FavoriteColor string `json:"favorite_color,omitempty"`
}

在以上示例中,标记用于更改encoding/json封送或取消封送JSON时程序包使用的键名。

尽管标签可以是任何字符串值,但是使用空格分隔的key:"value"对被认为是最佳实践:

struct StructName {
    FieldName int `package1:"customdata,moredata" package2:"info"`
}

encoding/xml和encoding/json包一起使用的struct标记在整个标准库中都使用。