【发布时间】:2016-01-19 07:33:00
【问题描述】:
使用我的 64 位 Mac(Macbook Pro 2009),Xcode 游乐场中的这段代码表现得很奇怪:
let var1 = UInt32.max // 4,294,967,295
let var2 = UInt64.max // -1 --> why?
var var3: UInt = UInt.max // -1 --> why?
var3 = -1 // generates an error.
将var3 设置为-1 应该会产生错误。但是在声明行中,它变成了等于-1。
【问题讨论】:
-
你是说操场允许你写
var3 = -1而不报错? -
@Cristik 不,正如我在代码的第 4 行中所写的那样,它确实会产生错误。但我不确定为什么编译器在第 3 行将其设置为
-1。 -
我认为这只是祈祷地表示无符号 64 位整数的一个错误,它可能将其解释为有符号整数。如果您添加
print(var2),那么您将看到打印的正确数字。