標籤:詞典 var log 沒有 西班牙語 ted 類型 習慣 不能
迴圈(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 3 10 //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 value4 } else {5 //The translatedWord has no value6 }
View Code
一旦核查確實有值後,你必須解包。解包一個可選值非常簡單,直接放一個歎號在變數後面即可,例如:
1 var translatedWord: String? = translate("cat")2 if translatedWord != nil {3 println(translatedWord!) //gato4 }
View Code
剛剛開始接觸可選值的時候會有一些困惑和不習慣,其實你只要記住,一個可能為空白的變數必須是可選值,而當可選值為空白時就叫做nil。
Swift 瞭解(2)