代码如下,在不知道具体是哪个 struct 的时候,如下的代码要怎么玩?
```
package main
import (
"fmt"
"reflect"
"github.com/vmihailenco/msgpack"
)
type User struct {
Id int
Name string
}
func main() {
u := &User{1, "test"}
t := reflect.TypeOf(u).Elem()
n := reflect.New(t).Elem().Interface()
// 改成下面这样是正常的,但是在项目中并不知道是哪个结构体,也许是 Order, Pay...
// n := reflect.New(t).Elem().Interface().(User)
r, _ := msgpack.Marshal(u)
msgpack.Unmarshal(r, &n)
fmt.Println(n)
}
```
更多评论