Yur*_*ruk -3 go
我注意到Go断言不起作用,因为我期望零整数。这是代码:
var i interface{} i = 0 i32, ok := i.(int32) fmt.Println(ok) fmt.Println(i32)
输出如下:
false 0
我找不到这种行为的解释。是虫子吗?
hob*_*bbs 5
i不包含int32,它包含int,因此类型声明失败。
i
int32
int
直接给interface{}这样的字面值赋值或在简短的变量声明中使用一个字面值可能会有些混乱,因为您并没有真正看到所获得的值的类型。您需要了解常量“默认类型”的规则。如果这样做给您带来麻烦,则可以将其显式转换为like之类的类型, i = int32(0)以确保i实际上包含一个int32。
interface{}
i = int32(0)
归档时间:
6 年,2 月 前
查看次数:
46 次
最近记录: