数据类型数组
Swift 包含了 C 和 Objective-C 上全部基础数据类型。它还增长了 Objective-C 中没有的高阶数据类型好比元组(Tuple)安全
一、基础类型spa
Int
整形和UInt
无符号整形Float
和Double
浮点型Bool
布尔型Character
字符型String
字符串类型二、集合类型code
Array
数组Set
集合Dictionary
字典三、高阶类型blog
Tuple
元组声明常量和变量开发
常量和变量必须在使用前进行声明,Swift中使用 let 声明常量,使用 var 声明变量字符串
类型标注编译器
当你声明常量或者变量的时候能够加上类型标注(type annotation),说明常量或者变量中要存储的值的类型。若是要添加类型标注,须要在常量或者变量名后面加上一个冒号和空格,而后加上类型名称。io
类型安全和类型推断编译
Swift 是一个类型安全(type safe)的语言。类型安全的语言能够很清楚地知道代码要处理的值的类型。
因为 Swift 是类型安全的,因此它会在编译你的代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可让你在开发阶段就会发现并修复错误。当你要处理不一样类型的值时,类型检查能够帮你避免错误。
然而,在声明常量和变量的时候若是你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型。有了类型推断,编译器能够在编译代码的时候自动推断出表达式的类型。原理很简单,只要检查你赋的值便可。
由于有类型推断,和 C 或者 Objective-C 比起来 Swift 不多须要声明类型。常量和变量虽然须要明确类型,可是大部分工做并不须要你本身来完成。
整数
整数能够是有符号
(正、负、零)或者 无符号
(正、零)。Swift 提供了8,16,32和64位的有符号和无符号整数类型。能够访问不一样整数类型的 min
和 max
属性来获取对应类型的最小值和最大值。通常来讲,你不须要专门指定整数的长度。可是Swift 提供了特殊的整数类型Int和无符号整型UInt,它们的长度和当前平台的原生字长相同。
注意:尽可能不要使用UInt
,除非你真的须要存储一个和当前平台原生字长相同的无符号整数。除了这种状况,最好使用Int
,即便你要存储的值已知是非负的。统一使用Int
能够提升代码的可复用性,避免不一样类型数字之间的转换,而且匹配数字的类型推断
浮点数
浮点数是有小数部分的数字,浮点类型比整数类型表示的范围更大,能够存储比 Int
类型更大或者更小的数字。Swift 提供了两种有符号浮点数类型:
Double
表示64位浮点数。当你须要存储很大或者很高精度的浮点数时请使用此类型。Float
表示32位浮点数。精度要求不高的话可使用此类型。注意:Double
精确度很高,至少有15位数字,而Float
只有6位数字。根据代码须要处理的值的范围来选择使用哪一个类型,在两种类型都匹配的状况下,将优先选择 Double
。
布尔值
Swift 有一个基本的布尔(Boolean)类型,叫作Bool
。布尔值指逻辑上的值,由于它们只能是真或者假。
Swift 有两个布尔常量,true
和 false
:
// 布尔值 let trueResult = true let falseResult = false
元组
元组(tuples)把多个值组合成一个复合值。元组内的值能够是任意类型,并不要求是相同类型。
可选类型
在Swift中,可选类型是为了表达当一个变量值为空的状况。当一个值为空时,它就是nil。Swift中不管是值类型或者引用类型的变量,均可以是可选类型。
可选绑定
使用 可选绑定 来判断可选类型是否包含值,若是包含就把值赋给一个临时常量或者变量。可选绑定能够用在 if
和 while
语句中,这条语句不只能够用来判断可选类型中是否有值,同时能够将可选类型中的值赋给一个常量或者变量。
隐式解析可选类型
如上所述,可选类型代表了常量或者变量能够“没有值”。能够经过if语句来判断是否有值,若是有值的话能够经过可选绑定来解析值。可是在项目中,当一个可选类型被第一次赋值后,可选类型确定有值,那这个时候若是每次判断和解析值就会很低效。
如此,咱们能够将用做可选的类型的后面的问号 ? 改成感叹号 ! 来声明一个隐式解析可选类型。