构造一个值为UInt8.max
的NSNumber
在Xcode 8中产生的结果与在Linux上使用Swift 3.0的开源版本不同。
Xcode 8:
print(NSNumber(value: UInt8.max)) // 255 (__NSCFNumber = Int16(255))
Linux上的Swift 3.0:
print(NSNumber(value: UInt8.max)) // -1
在线试用。
这是故意的吗? 我预计这两个Swift分布上的值都等于255。
正如Martin在评论中写道的,这似乎是Swift解释器SR-90的一个缺陷