Swift 了解(2)
循環(Loops)
For條件遞增語句
1 for ( var counter = 0; counter < 8; counter++ ) 2 { 3 liftWeights( ) 4 }
語法是這樣的:用for
作為循環的開始,告訴Xcode你要聲明一個循環了,for後面跟著括號,括號裏面聲明變量、條件和遞增數值。例如:
1 for ( VARIABLE; CONDITION; INCREMENT ) 2 { 3 4 }
括號中的第一個部分是變量,用counter表示,計算已經完成的循環的數量,在平時編寫程序時,這裏的變量常常命名為counter(英文中counter有計數器的含義)然後設定初始值為零:
1 for ( var counter = 0; CONDITION; INCREMENT ) 2 { 3 4 }
條件後面的一個分號後面是遞增值,遞增值就是每次循環後變量counter的變化:
1 for ( var counter = 0; counter < 8; counter++ ) 2 { 3 4 }
然而蘋果公司提供了簡寫方式,用兩個加號++
表示這個變量加1,例如:
counter++
作用和這個相同:
counter = counter +1
區間(Ranges)
區間Range和整型數組中一個數字到另一個數字差不多,目前有兩種區間,一種是閉區間,用三個小點表示,包含小點兩邊的數字:
1...5 //1,2,3,4,5
另外一種是半閉半開區間,用兩個小點加上一個小於號表示,小於號右邊的數字不包含在這個區間中:
1..<5 //1,2,3,4
在for-in循環中,可以使用區間來代替數組或者詞典:
1 for index in 1...5 2 { 3 println ("The current number is \(index)") 4 } 5 6 //打印結果為: 7 //The current number is 1 8 //The current number is 2 9 //The current number is 310 //The current number is 4 11 //The current number is 5
條件表達式
1 if isBirthdayToday == true 2 { 3 singBirthdaySong ( ) 4 }
在上面的這個例子中,條件是isBirthdayToday == true
,兩個等號表示比較2個等號之間的數值,如果值相同,則結果為真,如果值不相同,則結果為假。
可選類型(Optionals)
可選值是用來處理那些可能出現空值的變量。在某些情況下,你是無法確保一個變量是不是一定有值。例如,在西班牙語中的一個單詞,可能無法直接翻譯成英語的一個單詞,這樣就會出現空值。這種沒有值的情況叫做nil。
可選值可以用在任何類型的變量中,在使用時將一個問號跟在類型後面,表示這是可選值:
1 var translatedWord: String?
因為可能為空的變量都必須名稱表示,這樣能確保所有的非可選值變量都會有值。這種設計模式幫助開發者避免了空值引起的程序崩潰。非可選值變量都必須有值,可選值變量可以沒有值。
可選值不能直接使用,在使用之前需要解包(unwrapped)。把使用可選值變量想象成拆開一袋糖果,必須先要把包裝撕掉才能吃到糖果。當一個可選值變量解包後,這個變量也可能是空值。這就相當於你拆開一顆糖果,結果發現裏面什麽也沒有。
解包的過程幫助開發者記住去檢查然後確保這個變量不是空值,用可選值有2個步驟,第一步,檢查是不是為空,一般情況下用if表達式檢查:
1 var translatedWord: String? = translate("cat") 2 if translatedWord != nil { 3 //translatedWord has a value 4 } else { 5 //The translatedWord has no value 6 }View Code
一旦核查確實有值後,你必須解包。解包一個可選值非常簡單,直接放一個嘆號在變量後面即可,例如:
1 var translatedWord: String? = translate("cat") 2 if translatedWord != nil { 3 println(translatedWord!) //gato 4 }View Code
剛剛開始接觸可選值的時候會有一些困惑和不習慣,其實你只要記住,一個可能為空的變量必須是可選值,而當可選值為空時就叫做nil。
Swift 了解(2)