将interface {}转换为int

将interface {}转换为int

代替

iAreaId := int(val)

你想要一个类型断言:

iAreaId := val.(int)iAreaId, ok := val.(int) // Alt. non panicking version

您不能转换接口类型值的原因是参考的规范部分中的以下规则:

转换是形式的表达式

T(x)
其中
T
是类型,并且
x
是可以转换为类型T的表达式。

在以下任何一种情况下,可以将非恒定值x转换为类型T:

  1. x可分配给T。
  2. x的类型和T具有相同的基础类型。
  3. x的类型和T是未命名的指针类型,并且它们的指针基类型具有相同的基础类型。
  4. x的类型和T都是整数或浮点类型。
  5. x的类型和T都是复数类型。
  6. x是整数或字节或符文的片段,T是字符串类型。
  7. x是字符串,T是字节或符文的切片。

iAreaId := int(val)

任何情况下1.-7。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5170404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存