1

给定一个接口,我如何获得一个指向底层值的指针?

我天真的尝试是使用这样的类型断言:

var mytypeptr *MyType = myinterface.(*MyType)

但我得到:

interface conversion: MyInterface is MyType, not *MyType
4

1 回答 1

0

你可以开始,使用reflect.Indirect()

val := reflect.ValueOf(myinterface)
if val.Kind() == reflect.Ptr {
    val = reflect.Indirect(val)
}
于 2014-09-19T17:07:21.353 回答