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

The*_*chu 1 tags field go

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

type Foo struct {
    Bar string `json:"-"`
}
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*ris 9

你会用反射.从go docs中查看示例:

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

}
Run Code Online (Sandbox Code Playgroud)