У меня есть структура
type ChartOpts struct {
Name mypakage.MyType
Repo mypakage.MyType
}
Ι хочу перебрать свои поля, и если утверждение типа удовлетворено, вызывается метод для этого (утвержденного) типа.
func (chartOpts ChartOpts) BindFlags(cobCom *cobra.Command) {
fields := reflect.TypeOf(chartOpts)
values := reflect.ValueOf(chartOpts)
num := fields.NumField()
fmt.Println(fields, values, num)
for i := 0; i < num; i++ {
field := fields.Field(i)
switch v := field.Type.(type) {
case mypackage.MyType:
field.BindPersistentFlag(cobCom)
default:
log.Fatal(ErrUnhandledType)
}
}
}
приведенный выше код не компилируется с этой ошибкой:
field.BindPersistentFlag undefined (type reflect.StructField has no field or method BindPersistentFlag)
почему?