假如箭头所指的断言结构体不固定怎么写,如果是普通的int或者string直接就能.(int)断言了,但是我目前的场景需要支持多种结构体,我想直接b := aValue.Interface().(*reflect.TypeOf(a)),但是并不支持这样写
假如箭头所指的断言结构体不固定怎么写,如果是普通的int或者string直接就能.(int)断言了,但是我目前的场景需要支持多种结构体,我想直接b := aValue.Interface().(*reflect.TypeOf(a)),但是并不支持这样写
参加官方文档:Type assertions
可以考虑采用golang新版本中泛型。但是有问题的是,当前golang的泛型支持并不建议用于生产环境。
link: Go 1.18 Release NotesThese new language changes required a large amount of new code that has not had significant testing in production settings.
可以考虑的是“是否一定需要转换为结构体”。是需要使用特定的方法还是属性值呢?
如果是属性值
如果是方法
即,可以考虑go思想下的设计方案来实现需求。
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
1 回答1.5k 阅读
你是想把 A 结构体的值转化成其他 结构体吗?
如果是,我觉得直接字段赋值就可以了。
我不明白为什么要用上反射包