如何访问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"))
}
我很好奇如何在 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"))
}