Int/Uint
一个整数字面常量没有明确数据类型的时候,默认会被推断为Int 编译的目标平台为32位时,Int和Int32长度相同 编译的目标平台为64位时,Int和Int64长度相同 Uint为Int的无符号版本
其他整数类型
Int8,Int16,Int32,Int64 UInt8,UInt16,UInt32,UInt64
使用max,min获取整数类型最大值与最小值
print("The maximum Int Value is \(Int.max)")
print("The maximum Int Value is \(Int.min)")
print("The maximum UInt Value is \(UInt.max)")
print("The maximum UInt Value is \(UInt.min)")
浮点数:Double,Float
一个浮点数字面常量没有明确数据类型的时候,默认会被推断为Double Double为64位双精度浮点数,Float为32位单精度浮点数 表达式同时出现浮点数字面常量和整数字面常量的时候,会被推断为Double
与C/C++的不同之处
使用超过整数类型范围的字面常量,给整数初始化或者赋值时,编译器将会报错,而不是警告 let value:Int8=2000
print(value)
如果代码中发生了整数溢出,程序将会报错,而不是继续运行 var value:Int8=120
value+=20
print(value)
你可以使用溢出运算符避免溢出时报错,溢出运算符是在普通运算符上加上了一个&符号,包括加法(&+),乘法(&*),减法(&-) var value:Int8=120
value=value &+ 20
print(value)
两个不同类型的数字不能相加,编译器会报错,而不是警告 let x:UInt=2
let y:Int=3
let value=x * y
print(value)