首页 > 后端开发 > Golang > 如何在Go中安全地将interface{}转换为int?

如何在Go中安全地将interface{}转换为int?

Mary-Kate Olsen
发布: 2024-12-24 17:16:16
原创
640 人浏览过

How to Safely Convert interface{} to int in Go?

在 Go 中将 interface{} 转换为 int

从 JSON 获取数据并尝试将其转换为整数时,可能会遇到错误,指出无法转换int 的接口{}。此错误是由于 Go 的类型断言规则而发生的。

在您的代码中,您有以下行:

iAreaId := int(val)
登录后复制

此行尝试转换具有类型 interface{ 的 val },使用类型转换转换为 int。但是,不允许将 interface{} 类型转换为 int。

要解决此问题,您需要使用类型断言:

iAreaId := val.(int)
登录后复制

类型断言提取底层来自接口{}的值(如果它具有声明的类型)。如果该值没有声明的类型,则类型断言将发生恐慌。

或者,您可以使用第二个返回值来使用类型断言的非恐慌版本:

iAreaId, ok := val.(int)
登录后复制

如果类型断言成功,则 ok 变量将为 true;如果类型断言不成功,则 ok 变量将为 false。

通过正确使用类型断言,您可以在 Go 中成功将 interface{} 转换为 int。

以上是如何在Go中安全地将interface{}转换为int?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板