有下面 3 行代码:
下面代码输出什么?
// 32 位机器
1)var x int32 = 32.0
2)var y int = x
3)var z rune = x
它们是否能编译通过?为什么?
如果面试时问这道题,你需要想想面试官想考察你什么。
参考答案及解析: 答 不能通过编译
- 这里是允许的 因为 32.0 是无类型字面量 可以 赋值给 int32 2)int 在32位机器占32位 在 64位机器占64位,题中int 虽然和 int32 占相同的空间,但是因为是不同的类型 无法赋值 编译错误 3)rune是int32 的别名,可以通过编译