从 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中文网其他相关文章!