reflect.StructField有一个Index输入字段[]int。关于此的文档有点令人困惑:
Index []int // index sequence for Type.FieldByIndex
当然,Type.FieldByIndex正如预期的那样,对其行为进行了更清晰的解释:
// FieldByIndex returns the nested field corresponding
// to the index sequence. It is equivalent to calling Field
// successively for each index i.
// It panics if the type's Kind is not Struct.
FieldByIndex(index []int) StructField
但是,还有Type.Field():
// Field returns a struct type's i'th field.
// It panics if the type's Kind is not Struct.
// It panics if i is not in the range [0, NumField()).
Field(i int) StructFiel
因此,它们分别的行为非常清楚。
我的问题:究竟哪些字段/将在什么情况下reflect.StructField有一个Index用len(field.Index) > 1?这是否支持枚举嵌入式字段(可通过父级中的匿名字段访问)?在其他情况下会发生吗?(即假设 if 是否安全!field.Anonymous,那么我们可以将其field.Index[0]用作参数Field(i int)?)
慕盖茨4494581
相关分类