我需要创建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
- 1 回答
- 0 关注
- 69 浏览
添加回答
举报
0/150
提交
取消