有下面 3 行代码:

下面代码输出什么?

// 32 位机器
1var x int32 = 32.0
2var y int = x
3var z rune = x

它们是否能编译通过?为什么?

如果面试时问这道题,你需要想想面试官想考察你什么。

参考答案及解析: 答 不能通过编译

  1. 这里是允许的 因为 32.0 是无类型字面量 可以 赋值给 int32 2)int 在32位机器占32位 在 64位机器占64位,题中int 虽然和 int32 占相同的空间,但是因为是不同的类型 无法赋值 编译错误 3)rune是int32 的别名,可以通过编译