为了账号安全,请及时绑定邮箱和手机立即绑定

如何将类型值传递给具有类型反射的变量。

如何将类型值传递给具有类型反射的变量。

Go
万千封印 2022-09-05 09:21:20
我需要创建StructField,我需要在其中传递反射。类型字段的类型值。我想通过其他类型,如反射。布尔,反思。Int to function,它将用于构建 StructField。我无法使用下面的代码执行此操作reflect.StructField{             Name: strings.Title(v.Name),             Type: reflect.Type(reflect.String),             Tag:  reflect.StructTag(fmt.Sprintf(`xml:"%v,attr"`, v.Name)),         }因为它Cannot convert an expression of the type 'Kind' to the type 'Type'
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

反映。类型是一种类型,因此表达式


reflect.Type(reflect.String)

将是类型转换。类型是反射的。不实现接口类型的 Kind,因此转换无效。reflect.Stringreflect.Type


表示的值为:reflect.Typestring


reflect.TypeOf("")

通常,任何(非接口)类型的描述符都可以使用反射器进行获取。TypeOf() 函数,如果你有一个值:reflect.Type


var x int64

t := reflect.TypeOf(x) // Type descriptor of the type int64

如果您没有值,也可以这样做。从类型化的指针值开始,然后调用以获取指向的类型:nilType.Elem()


t := reflect.TypeOf((*int64)(nil)).Elem()      // Type descriptor of type int64


t2 := reflect.TypeOf((*io.Reader)(nil)).Elem() // Type descriptor of io.Reader


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信