如何访问golang中的变量标签?

How to access variable tags in golang?

我很好奇如何在 golang 中访问变量标签。我知道 JSON 是这样使用它们的:

type Foo struct {
    Bar string `json:"-"`
}

但我似乎找不到一种方法来访问代码中的这些标签供我自己使用。如何获取这些值以便在代码中使用它们?

你会用到反射。请参阅 go 文档中的 this 示例:

package main

import (
    "fmt"
    "reflect"
)

func main() {
    type S struct {
        F string `species:"gopher" color:"blue"`
    }

    s := S{}
    st := reflect.TypeOf(s)
    field := st.Field(0)
    fmt.Println(field.Tag.Get("color"), field.Tag.Get("species"))

}