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

时间:2015-10-30 00:49:50

标签: go tags field

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

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

但我似乎无法找到一种方法来访问我自己使用的代码中的标签。我怎样才能获得这些值,以便在代码中使用它们?

1 个答案:

答案 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"))

}