數據類型數組
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語句來判斷是否有值,若是有值的話能夠經過可選綁定來解析值。可是在項目中,當一個可選類型被第一次賦值後,可選類型確定有值,那這個時候若是每次判斷和解析值就會很低效。
如此,咱們能夠將用做可選的類型的後面的問號 ? 改成感嘆號 ! 來聲明一個隱式解析可選類型。