我有结构
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)
}
神不在的星期二
相关分类