使用反射

时间:2018-05-17 04:46:09

标签: go struct reflection

当字段是接口类型时,如何在使用reflect.TypeOf(struct.field)时获得与FieldByName相同的值?

here所示,如果struct字段是一个接口,reflect.TypeOf(struct.field)给我具体的类型,但reflect.ValueOf(struct).FieldByName("field").Type()给了我接口。如果{I}有struct.fieldstruct,是否可以使用反射来获取"field"中存储的具体类型?

1 个答案:

答案 0 :(得分:0)

您应该使用Elem()

  

// Elem返回接口v包含的值

提取类型的正确方法

reflect.ValueOf(h).Elem().FieldByName("i").Elem().Type().String()