类型安全
Swift 是 类型安全(type safe) 的语言。它会在编译你的代码时进行 类型检查(type checks) ,把不匹配的类型标记为错误。
简单来说就是 xcode 会报错
类型推断
声明常量和变量的时候不一定需要显式指定类型。 如果你没有显式指定类型,Swift 会使用 类型推断(type inference) 来选择合适的类型。
Int
Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同:
- 在32位平台上,Int和Int32长度相同。
- 在64位平台上,Int和Int64长度相同。
| 类型 | 大小(字节) | 区间值 |
|---|---|---|
| Int8 | 1 | -127 到 127 |
| Int32 | 4 | -2147483648 到 2147483647 |
| Int64 | 8 | -9223372036854775808 到 9223372036854775807 |
UInt
Swift 也提供了一个特殊的无符号类型UInt,长度与当前平台的原生字长相同:
- 在32位平台上,UInt和UInt32长度相同。
- 在64位平台上,UInt和UInt64长度相同。
| 类型 | 大小(字节) | 区间值 |
|---|---|---|
| UInt8 | 1 | 0 到 255 |
| UInt32 | 4 | 0 到 4294967295 |
| UInt64 | 8 | 0 到 18446744073709551615 |
注意:尽量不要使用
UInt,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用Int,即使你要存储的值已知是非负的。统一使用Int可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断,请参考类型安全和类型推断。
///直接赋值
var number = 9;
//声明Int型变量
var num = Int();
/*
不赋值会报警告
Initialization of variable 'num' was never used;
consider replacing with assignment to '_' or removing it
*/
num = 1;
浮点数
Double表示64位浮点数。可以需要存储很大或者很高精度的浮点数。Float表示32位浮点数。精度要求不高的话可以使用此类型。
| 类型 | 大小(字节) | 区间值 |
|---|---|---|
| Float | 4 | 1.2E-38 到 3.4E+38 (~6 digits) |
| Double | 8 | 2.3E-308 到 1.7E+308 (~15 digits) |
var fNum = 2.11;
var fNum = Float();
fNum = 1.1;
布尔值
true
false
var isOk = true;
字符串
let string = "hello world";
字符
var aChar : Character;
aChar = "C";
类型别名
类型别名对当前的类型定义了另一个名字,类型别名通过使用 typealias 关键字来定义。
typealias newInt = Int;
var number = newInt();
number = 1;