从界面获取指向struct的指针?

时间:2014-09-19 17:02:58

标签: go go-interface

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

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

var mytypeptr *MyType = myinterface.(*MyType)

但我明白了:

interface conversion: MyInterface is MyType, not *MyType

1 个答案:

答案 0 :(得分:0)

您可以使用reflect.Indirect()开始:

val := reflect.ValueOf(myinterface)
if val.Kind() == reflect.Ptr {
    val = reflect.Indirect(val)
}