【问题标题】:Mimic struct.field using reflect使用反射模拟 struct.field
【发布时间】:2018-10-27 06:03:27
【问题描述】:

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

here 所见,如果结构字段是接口,reflect.TypeOf(struct.field) 给我具体类型,但reflect.ValueOf(struct).FieldByName("field").Type() 给我接口。如果我只有struct"field",是否可以使用反射获取存储在struct.field 中的具体类型?

【问题讨论】:

    标签: go struct reflection


    【解决方案1】:

    你应该使用Elem()

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

    提取类型的正确方法

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      相关资源
      最近更新 更多