У меня есть структура
type ChartOpts struct {
Name mypakage.MyType
Repo mypakage.MyType
}
, на которой я хочу установить приемник для отражения.
func (chartOpts *ChartOpts) BindFlags() {
fields := reflect.TypeOf(chartOpts)
values := reflect.ValueOf(chartOpts)
num := fields.NumField()
fmt.Println(fields, values, num)
}
Приведенный выше код вызывает панику
panic: reflect: NumField of non-struct type *app.ChartOpts
Почему Мне нужно вызвать метод Elem()
, чтобы исправить это?
func (chartOpts *ChartOpts) BindFlags() {
fields := reflect.TypeOf(chartOpts)
values := reflect.ValueOf(chartOpts)
num := fields.Elem().NumField()
fmt.Println(fields, values, num)
}