Swift--變量和常量

聲明常量和變量 
常量和變量必須在使用前聲明,用 let 來聲明常量,用 var 來聲明變量。下面的例子展示瞭如何用常量和變量來記錄用戶嘗試登錄的次數:
1.  let maximumNumberOfLoginAttempts = 10  
2.  var currentLoginAttempt = 0
可以在一行中聲明多個常量或者多個變量,用逗號隔開:
1.  var x = 0.0, y = 0.0, z = 0.0 

類型標註 
當你聲明常量或者變量的時候可以加上類型標註(type annotation),說明常量或者變量中要存儲的值的類型。如果要添加類型標註,需要在常量或者變量名後面加上一個冒號和空格,然後加上類型名稱。 
這個例子給 welcomeMessage 變量添加了類型標註,表示這個變量可以存儲 String 類型的值:
1.  var welcomeMessage: String 
注意:一般來說你很少需要寫類型標註。如果你在聲明常量或者變量的時候賦了一個初始值,Swift 可以推斷出這個常量或者變量的類型,請參考類型安全和類型推斷。在上面的例子中,沒有給 welcomeMessage 賦初始值,所以變量 welcomeMessage 的類型是通過一個類型標註指定的,而不是通過初始值推斷的。

常量和變量的命名 
你可以用任何你喜歡的字符作爲常量和變量名,包括  Unicode  字符:
1.  let π = 3.14159 
2.  let 你好 = "你好世界"  
3.  let ???????? = "dogcow"
  常量與變量名不能包含數學符號,箭頭,保留的(或者非法的)Unicode  碼位,連線與製表符。也不能以數字開頭,但是可以在常量與變量名的其他地方包含數字。
一旦你將常量或者變量聲明爲確定的類型,你就不能使用相同的名字再次進行聲明,或者改變其存儲的值的類型。同時,你也不能將常量與變量進行互轉。 

注意:如果你需要使用與 Swift 保留關鍵字相同的名稱作爲常量或者變量名,你可以使用反引號(`)將關鍵字包圍的方式將其作爲名字使用。無論如何,你應當避免使用關鍵字作爲常量或變量名,除非你別無選擇。你可以更改現有的變量值爲其他同類型的值,在下面的例子中,friendlyWelcome 的值從"Hello!"改爲了"Bonjour!": 
1.  var friendlyWelcome = "Hello!"  
2.  friendlyWelcome = "Bonjour!"  
3.  // friendlyWelcome 現在是 "Bonjour!" 

輸出常量和變量 
你可以用 println 函數來輸出當前常量或變量的值: 
1.  println(friendlyWelcome)  
2.  // 輸出 "Bonjour!"  
  println 函數輸出傳入的 String 值: 
1.  println("This is a string")  
2.  // 輸出 "This is a string"  
與  Cocoa 裏的 NSLog 函數類似的是,println 函數可以輸出更復雜的信息。這些信息可以包含當前常量和變量的值。 Swift  用字符串插值(string interpolation)的方式把常量名或者變量名當做佔位符加入到長字符串中,Swift  會用當前常量或變量的值替換這些佔位符。將常量或變量名放入圓括號中,並在開括號前使用反斜槓將其轉義: 
1.  println("The current value of friendlyWelcome is \(friendlyWelcome)") 
2.  // 輸出 "The current value  of friendlyWelcome  is Bonjour!  


類型安全和類型推測
Swift  是一個類型安全(type safe )的語言。類型安全的語言可以讓你清楚地知道代碼要處理的值的類型。如果你的代碼需要一個 String,你絕對不可能不小心傳進去一個 Int。  
由於  Swift  是類型安全的,所以它會在編譯你的代碼時進行類型檢查(type checks),並把不匹配的類型標記爲錯誤。這可以讓你在開發的時候儘早發現並修復錯誤。 
當你要處理不同類型的值時,類型檢查可以幫你避免錯誤。然而,這並不是說你每次聲明常量和變量的時候都需要顯式指定類型。如果你沒有顯式指定類型,Swift  會使用類型推測(type inference)來選擇合適的類型。有了類型推測,編譯器可以在編譯代碼的時候自動推測出表達式的類型。原理很簡單,只要檢查你賦的值即可。 
因爲有類型推測,和  C 或者  Objective-C 比起來  Swift  很少需要聲明類型。常量和變量雖然需要明確類型,但是大部分工作並不需要你自己來完成。 
  
當你聲明常量或者變量並賦初值的時候類型推測非常有用。當你在聲明常量或者變量的時
候賦給它們一個字面量(literal value 或  literal)即可觸發類型推測。(字面量就是會直接出現在你代碼中的值,比如 42 和 3.14159。) 

例如,如果你給一個新常量賦值 42 並且沒有標明類型,Swift 可以推測出常量類型是Int,因爲你給它賦的初始值看起來像一個整數: 
1.  let meaningOfLife = 42  
2.  // meaningOfLife 會被推測爲 Int 類型  
同理,如果你沒有給浮點字面量標明類型,Swift  會推測你想要的是 Double: 
1.  let pi = 3.14159  
2.  // pi 會被推測爲 Double 類型  
當推測浮點數的類型時,Swift  總是會選擇 Double 而不是 Float。如果表達式中同時出現了整數和浮點數,會被推測爲 Double 類型: 
1.  let anotherPi = 3 + 0.14159  
2.  // anotherPi 會被推測爲 Double 類型  
原始值 3 沒有顯式聲明類型,而表達式中出現了一個浮點字面量,所以表達式會被推測爲Double 類型。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章