【问题标题】:Swift - UInt behaviourSwift - UInt 行为
【发布时间】: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),那么您将看到打印的正确数字。

标签: swift uint64 uint32 uint


【解决方案1】:

显然这只是 swift playground 中的一个错误,根据@Anton 的说法,打印变量显示正确的值。

【讨论】:

    猜你喜欢
    • 2014-07-31
    • 1970-01-01
    • 2012-04-20
    • 2014-09-18
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多