一尘不染

如何获取接口的reflect.Type?

go

为了确定给定类型是否使用reflect包实现接口,您需要将reflect.Type传递给reflect.Type.Implements()。您如何获得这些类型之一?

作为一个例子,试图获得未初始化的os.Error(接口)类型的类型并 没有 工作(它恐慌的时候,你要调用它的种类())

var err os.Error
fmt.Printf("%#v\n", reflect.TypeOf(err).Kind())

阅读 256

收藏
2020-07-02

共1个答案

一尘不染

像这样做:

var err *os.Error
t := reflect.TypeOf(err).Elem()

或一行:

t := reflect.TypeOf((*os.Error)(nil)).Elem()
2020-07-02