Go 什么';类型字段和值字段之间的区别是什么?
下面的代码Go 什么';类型字段和值字段之间的区别是什么?,go,struct,reflection,Go,Struct,Reflection,下面的代码 func fieldsTest(target interface{}) ([]field, error) { s := reflect.ValueOf(target) s = s.Elem() targetType := s.Type() for i := 0; i < s.NumField(); i++ { f := s.Field(i) structField := targetType.Field(i)
func fieldsTest(target interface{}) ([]field, error) {
s := reflect.ValueOf(target)
s = s.Elem()
targetType := s.Type()
for i := 0; i < s.NumField(); i++ {
f := s.Field(i)
structField := targetType.Field(i)
...
}
func fieldsTest(目标接口{})([]字段,错误){
s:=反射.值(目标)
s=s.Elem()
targetType:=s.Type()
对于i:=0;i
如果目标接口是结构,则f的返回值与structField相同?Type.Field()
返回类型值,并返回类型值。因此它们不能相同
Type.Field()
返回描述字段类型的值,而不考虑任何实际结构值。value.Field()
返回包装结构值字段值的reflect.value