登录
首页 >  Golang >  Go问答

检查数据类型

来源:stackoverflow

时间:2024-02-29 13:09:24 483浏览 收藏

本篇文章向大家介绍《检查数据类型》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我正在调用 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 - 是或否。


解决方案


我想你可能只是在寻找

var varType *os.File
tpe := reflect.TypeOf(varType).Elem()
fmt.Println(tpe == reflect.TypeOf(somevar).Elem())

以上就是《检查数据类型》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>