您好,登錄后才能下訂單哦!
本文來自于瘋子們的開源圖書
常量和變量將名稱(比如maximumNumberOfLoginAttempts或者welcomeMessage)和特定類型的值(比如數字10或者字符串hello)關聯到一起。一個常量的值一旦它被賦值就不能改變了,然而一個變量之后可以被賦予不同的值。
常量和變量在它們使用之前必須聲明。使用let關鍵詞聲明常量而使用var關鍵詞聲明變量。這里有一個例子是用常量和變量來跟蹤用戶登錄的嘗試次數。
這個代碼可以解讀為:“聲明一個新的常量maximumNumberOfLoginAttempts,并且給它賦值10.然后,聲明一個新的變量currentLoginAttempt,并且給它一個初始值0”
在這個例子中,允許嘗試登錄的最大次數被聲明為一個常量,因為最大值永遠不會改變。當前的嘗試登錄數目被聲明為一個變量,因為這個值在每次嘗試登錄失敗之后增加。
你可以在一行中聲明多個常量或者變量,使用逗號隔開:
注意:如果在你的代碼中存儲一個不會改變的值,總是使用關鍵字let把它聲明為一個常量。存儲一個可能會改變的值,請使用變量。
在你聲明常量或者變量的時候,可以提供一個類型注解,來明確常量和變量能夠存儲何種類型的值。編寫一個類型注釋將冒號放在常量名或變量名之后,隨后是一個空格,緊隨其后的是使用類型名稱。
這個例子為一個叫做welcomeMessage的變量提供了一個類型注釋,來指出這個變量能存儲字符串。
在聲明處的冒號表示是什么類型的,所以上面的代碼可以解讀為:“聲明一個叫welcomeMessage的字符串類型的變量”。“of type string”的詞組表示“能夠存儲任意字符串值”。你可以把它理解為一個容器,可以承裝任意類型的東西。
現在變量welcomeMessage能夠被設置為任意的字符串值而不會有錯誤的。
注意:
在實踐中,很少會需要添加類型注解的。如果在定義常量或者變量時,提供初始值,Swift幾乎總是能夠推斷出那個常量或變量所使用的類型,在“類型安全檢查和類型推斷”里有詳細的描述。在上面的welcomeMessage的例子中,沒有提供初始值,所以welcomeMessage變量的類型是經過類型注釋d的,而不是從初始值推斷的。
你幾乎可以使用任何字符為常量和變量命名,包括Unicode字符:
常量和變量名字中不能包含數學符號,箭頭,私人用的(或者無效的)Unicode編碼,或者是類似于線條或者方塊似的字符。它們也不能以數字開頭,但是數字可以包含在名字的其余部分中。
當你已經聲明了某種類型的常量或變量,你不能用同樣的名字再次聲明它,或者用它來存儲一個不同類型的值。你也不能把一個常量變為一個變量,或者把一個變量變為常量。
注意:
如果你想使用Swift保留的關鍵字作為常量或者變量的名字的話,你可以在關鍵字的兩端加上反勾號(`,鍵盤左上角的),這樣你就可以把它作為名字使用了。不過,你應該避免使用關鍵字來命名,除非你實在沒有選擇了。
你可以把另外一個類型兼容的值賦給一個已存在的變量。在這個例子中,friendlyWelcome的值從"Hello"變為"Bonjour!":
不像變量,一個常量的值一旦被設置就不能改變。嘗試這樣做的話,編譯的時候,你的代碼會報告一個錯誤:
你可以使用println函數來打印常量或變量的當前值:
全局函數println將結果緊跟一個換行符,打印到適合的輸出設備上面。比如,你在使用Xcode,println就會將結果打印在Xcode的控制臺面板當中。(另外一個函數,print,執行同樣的任務。只不過沒有在打印結果上面加上換行符)。
println函數可以打印任何你傳遞給他的字符串值:
println函數能夠打印更多復雜的日志信息,就像Cocoa的NSLog函數一樣。這些信息可以包含常量和變量的當前值。
Swift將常量或者變量作為占位符插入到字符串當中,之后就用那個常量或變量的當前值來替換它,這就是所謂的字符串內嵌(String Interpolation)。用圓括號包住名字并且在圓括號之前加上反斜 杠(\)。
注意:
使用字符內嵌的相關描述都在“字符內嵌”當中。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。