检查类型变量

我正在调用os/Create函数,并希望在我的一个测试用例中确保响应确实是 *os.File 类型。


下面是我的代码片段。虽然我做了很多迭代,但这些行的动机是这篇文章。


//somevar -- gets *os.File from a function

var varType *os.File

tpe := reflect.TypeOf(varType).Elem()

fmt.Println(reflect.TypeOf(somevar).Implements(tpe)) // I expect a true or false


当我运行这段代码时,我感到恐慌:


panic: reflect: non-interface type passed to Type.Implements [recovered]

    panic: reflect: non-interface type passed to Type.Implements

请建议我做错了什么。我要检查的是 - 某些变量的类型是 *os.File - 是或否。


蓝山帝景
浏览 200回答 1
1回答

绝地无双

我想你可能只是在寻找var varType *os.Filetpe := reflect.TypeOf(varType).Elem()fmt.Println(tpe == reflect.TypeOf(somevar).Elem())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go