相关疑难解决方法(0)

Golang如何为未知接口做类型断言?

我知道我可以通过反射得到一个对象的值,然后使用类型断言来获取实际对象:

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

9
推荐指数
1
解决办法
4673
查看次数

标签 统计

go ×1