對於一個學過C和Objective-C的程式猿來講,Swift編程語言的語法基礎非常簡單。但是Swift也是添加了很多新的語法,比如元組、可選類型等等。一、類型轉換和C、Objective-C中的類型強轉類似,只需要將常量或者變數放進 '()' 內,然後在括弧前面加上目標類型就可以了。 1 let ...
對於一個學過C和Objective-C的程式猿來講,Swift編程語言的語法基礎非常簡單。但是Swift也是添加了很多新的語法,比如元組、可選類型等等。
一、類型轉換
和C、Objective-C中的類型強轉類似,只需要將常量或者變數放進 '()' 內,然後在括弧前面加上目標類型就可以了。
1 let a : UInt8 = 10 2 let b : UInt16 = 100 3 print("\(UInt16(a) + b)") // 輸出結果為 110 4 5 let san = 3 6 let pi = 3.14 7 let add1 = Double(san) + pi 8 print(add1) // 輸出結果為 6.14 9 let add2 = san + Int(pi) 10 print(add2) // 輸出結果為 6
二、類型別名
類似於C、Objective-C中的 typedef。
1 typealias 整型 = UInt 2 let minValue = 整型.min // 整型.min 表示該類型的最小值,此處就是UInt類型的最小值 3 print(minValue) // 輸出結果為 0
三、元組
元組可以將多個不同類型的值賦給同一個變數,我們可以在定義元組時給單個元素命名,也可以通過元組分解來給元組中的元素命名。
1 // 1.定義元組 2 let 學生 = ("程式猿", 1, 18) 3 // 2.元組分解,給元組中的元素命名 4 let (name, number, age) = 學生 5 let (姓名, _, _) = 學生 // 分解時,要忽略的元素用 '_' 表示 6 // 3.訪問元組元素 7 // 通過 元素名 訪問元組元素 8 print("學生的姓名是\(name)") 9 print("學生的學號是\(number)") 10 print("學生的年齡是\(age)") 11 print("學生的姓名是\(姓名)") 12 // 通過 元素下標 訪問元組元素,下標從 0 開始 13 print(學生.0, 學生.1, 學生.2) 14 //print(學生.3) // 下標越界會報錯 15 16 // 4.定義元組時給單個元素命名,則通過 元組名.元素名 訪問元組元素 17 let rect = (width : 10, height : 20) 18 print(rect.width) 19 print(rect.height)
四、可選類型
1.Swift中使用可選類型處理值可能缺失的情況。
1 // 1.可選類型與強制解析 2 let string = "123456" 3 let convertNumber = Int(string) 4 print(convertNumber) // 列印結果為 Optional(123456),convertNumber 的類型是 Optional Int(Int?)
5 if convertNumber != nil { 6 print(convertNumber!) // 可選值的強制解析,列印結果為 123456 7 } 8 9 // 2.可選綁定:可以用在 if 和 while 語句中來對可選類型的值進行判斷,並把值賦給一個常量或者變數 10 if var actualNumber = Int(string) { 11 print(actualNumber) 12 } 13 14 // 3.隱式解析可選類型:第一次被賦值之後,可以確定一個可選類型總會有值,只能在確定變數有值的情況下使用 15 var 確定有值 : String! = "altas" 16 print(確定有值) 17 var 不確定 : String! 18 //print(不確定) // 在變數沒值的時候使用 隱式解析可選類型,程式執行到該行時會崩潰
2.Swift中的 nil 與 OC中的 nil 的不同:Swift中的 nil 表示值缺失,是一個確定的值;而OC中的 nil 是一個指向不存在對象的指針。
1 var error : Int? = 404 2 error = nil // 給 error 賦值為 nil,表示現在 error 不包含值 3 var errorStr : String? // 在定義可選類型變數時,不給變數賦初值,則預設為 nil
五、斷言
主要用於代碼的調試 :程式執行到斷言語句時,只有斷言的條件滿足,程式才會繼續往下執行,否則程式將崩潰。
1 var 年齡 = -10 2 //assert(年齡 >= 0, "年齡不能小於0") // 條件不滿足,程式執行到斷言時崩潰,且在控制台輸出 年齡不能小於0
註:本文所有內容均基於Xcode7.2,如有不准確內容,敬請諒解!(2016-01-17)