鉴于以下示例,是否有可能创建一个可以逐字复制(不仅是获取reflect.Type)实际类型以进行进一步操作的函数?我知道 go 是静态类型的,虽然我可以将任何结构传递给定义接口参数的函数非常酷,但我是否有机会以相反的方式做更多的事情?我已经查看了reflect包,但只找到了返回reflect.Type或reflect.Value的东西。我使用了返回新的reflect.Value 的New() 方法 - 在那里我无法设置任何字段。也许对反射包有经验的人可以告诉我这是否绝对可行 - 或者是否有另一种方法可以做到。package mainimport "fmt"type User struct { Name string}func main() { user := User{Name:"FooBar"} DoSomethingGenericWithStruct(user)}func DoSomethingGenericWithStruct(i interface{}) { // access fields of i ... // or create slice of type of i ([]User) ... // or instantiate new object of type of i (new User) ... // ...}
1 回答
- 1 回答
- 0 关注
- 155 浏览
添加回答
举报
0/150
提交
取消