而不是
iAreaId := int(val)
iAreaId := val.(int)
iAreaId, ok := val.(int) // Alt. non panicking version
无法convert接口类型值的原因是引用的等级库部件中的以下规则:
T(x)Tx
...
在以下任何一种情况下,非恒定值x可以转换为T型:
- X可赋值给T.
- x的类型和T有相同的基础类型.
- X的类型和T是未命名的指针类型,它们的指针基类型具有相同的基础类型.
- X的类型和T都是整数或浮点类型.
- X的类型和T都是复杂类型.
- X是整数或字节或符号片,T是字符串类型.
- X是字符串,T是字节或符号片.
但
iAreaId := int(val)
任何一种情况都是not-7.