验证reflect.Type的其他方法int和float64

ick

在golang中,JSON消息中的数字始终会解析为float64。为了检测它是否实际上是整数,我使用它reflect.TypeOf()来检查其类型。不幸的是,没有常数代表reflect.Type

intType := reflect.TypeOf(0)
floatType := reflect.TypeOf(0.0)
myType := reflect.TypeOf(myVar)
if myType == intType {
    // do something
}

有没有更优雅的解决方案,而不是使用0或0.0来获取reflect.Type

icza:

您也可以类型的文档中使用Value.Kind()Type.Kind()方法,其可能的值在reflect程序包中作为常量列出Kind

myType := reflect.TypeOf(myVar)
if k := myType.Kind(); k == reflect.Int {
    fmt.Println("It's of type int")
} else if k == reflect.Float64 {
    fmt.Println("It's of type float64")
}

您也可以在中使用它switch

switch myType.Kind() {
case reflect.Int:
    fmt.Println("int")
case reflect.Float64:
    fmt.Println("float64")
default:
    fmt.Println("Some other type")
}

请注意,reflect.Typereflect.Value都有一个Kind()方法,因此,如果您以reflect.ValueOf(myVar)开头,都可以使用它reflect.TypeOf(myVar)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Jquery插件和其他方法进行表单验证

JAVA 6不支持SNI,是否可以通过TLS验证和接受SSL证书的其他方法?

验证日期或以其他方式验证日期

如何验证方法是否由Mockito从具有相同类的其他方法调用

如何使用其他方法来验证扫描仪输入?

jQuery 验证选择组合上的其他方法丢弃错误

除了身份验证之外,还有其他方法可以区分用户吗?

的Mockito:如何验证的方法,用确切参数忽略了对其他方法的调用只能调用一次?

自定义身份验证方法还是其他方法可以做到这一点?Django的

还有其他方法可以验证python3中的命令行参数吗?

Java证书验证在其他方法上为false,但在相同类中的相同方法上为true

Rails:通过设计或其他方式对 swagger API 进行身份验证

如何在Python中使用递归正则表达式或其他方法来递归验证类似BBcode的标记?

在PowerShell中,声明字符串数组参数时可以使用Test-Path(或其他方法)来验证多个文件

Rails:如何使实例方法像验证和其他gem方法一样可调用?

如何打开reflect.Type?

不匹配的类型float64和int

如何通过其他值的reflect.Type转换值类型

显示/隐藏基于其他表单输入和验证的表单元素的最佳方法?

其他人可以使用 Windows 身份验证或任何其他方法连接到我的 SQL Server,还是只有我一个?

Androidplot错误:无法解析getGraphWidget和其他方法

使foo.sort()和其他方法返回

Django表单和javascript或其他方法

构造函数和其他方法的函数通信问题?

模拟其他方法

基于其他字段的验证

reCaptcha打破其他验证?

.net 和其他技术之间 XSD 验证错误的差异

使用 allOf 和其他属性进行 Swagger 数据验证