3

Userタイプがあるとしましょう

type User struct {
    FirstName string
    LastName  string
    ...
}

[]stringフィールド名を返す関数が必要です[FirstName, LastName, ...]

4

1 に答える 1

4

これは、リフレクション ( reflectパッケージ経由) を使用して行うことができます。

instance := struct{Foo string; Bar int }{"foo", 2}

v := reflect.ValueOf(instance)

names := make([]string, 0, v.NumField())

v.FieldByNameFunc(func(fieldName string) bool{
    names = append(names, fieldName)
    return false
})

play での実例。

于 2013-08-28T20:50:50.723 に答える