Type.Field 和 Value.Field 有什么区别?

以下代码。


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)


    ...

}

如果目标接口是struct,f的返回值与structField相同?


MMMHUHU
浏览 103回答 1
1回答

森林海

Type.Field()返回类型 的值reflect.StructField,并Value.Field()返回类型 的值reflect.Value。所以它们不可能是相同的。Type.Field()返回一个描述字段类型的值,而不考虑任何实际的结构值。返回包装结构体值的字段值Value.Field()的a 。reflect.Value
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go