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