我很好奇如何在golang中访问变量标签。我知道JSON会像这样使用它们:
type Foo struct {
Bar string `json:"-"`
}
但我似乎无法找到一种方法来访问我自己使用的代码中的标签。我怎样才能获得这些值,以便在代码中使用它们?
答案 0 :(得分:9)
你会使用反射。请参阅go docs中的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"))
}