2016-11-30 6 views
0
type Teacher struct { 
    Name string `json:"name"` 
    Age int `json:"age"` 
    } 


    func getTag(i interface{}) string 

    getTag(teacher.Name) // print name 
    getTag(teacher.Age) // print age 

私はコードセグメントのように私の関数をロールしたいと思いますが、これを実現する方法が見つかりません。何か案は?Golangは関数にsturctメンバ変数を渡してタグ名を返す

+2

をフェッチします。フィールド値自体にタグに関連するものは何もありません。 – JimB

答えて

0

おそらくこれが役立ちます。 https://play.golang.org/p/WtqdQAmsbi

x := struct { 
    Bar int `json:"bar"` 
    Foo string `json:"foo"` 

}{2, "foo"} 

v := reflect.ValueOf(x) 

for i := 0; i < v.NumField(); i++ { 
    fmt.Println(v.Type().Field(i).Name) 
    fmt.Println(v.Type().Field(i).Tag) 
} 

タグが構造型の一部である構造体のフィールドの名前とそのタグ

関連する問題