我知道我可以通过反射得到一个对象的值,然后使用类型断言来获取实际对象:
obj := new(User)
out := reflect.ValueOf(obj).Elem().Interface().(User)
fmt.Println(out == *obj) // true
Run Code Online (Sandbox Code Playgroud)
但是,如果我不知道对象的类型是什么User,我该怎么做类型断言呢?说它在一个函数内部:
func Foo(obj interface{}) bool {
// out := reflect.ValueOf(obj).Elem().Interface().( ... )
return out == *obj
}
func main() {
obj := new(User)
fmt.Println(Foo(obj))
}
Run Code Online (Sandbox Code Playgroud)
在Foo函数内部,您永远不会知道实际传递的对象类型,那么如何完成类型断言?
go ×1