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)
网友评论