[極速Swift教程之一] 簡單類型

更多內容歡迎關注公衆號:Swift花園

變量


當你啓動Xcode時,它會詢問你想要作的事情,選擇"Get Started with a Playground"。Playground是一個能夠供你輸入Swift代碼並當即看到結果的沙盒環境。編程

默認的,Xcode將提供一個iOS編程環境的空白Playground, 點擊Next,而後再點擊Create,將Playground保存到你的系統桌面。swift

在本文中,我將向你介紹「變量」,它們是你用來存儲程序數據的地方。之因此被稱爲「變量」,是由於它們可變,即你能夠自由地改變它們的值。安全

咱們將從在Playground中的第一行代碼開始瞭解「變量」,它是一行建立了一個名稱爲「str」, 值爲「Hello, playground」的字符串變量的代碼bash

var str = "Hello, playground"複製代碼

這行代碼建立了一個名爲str的新變量, 並給它賦值爲「Hello, playground」。在Playground右側的輸出區域你能夠看到「Hello, playground」 – 這是Xcode在展現咱們剛剛給str設置的值。編程語言

既然str是一個變量,咱們就能夠改變它:測試

str = "Goodbye"複製代碼

第二次的時候,你不須要再寫一次var,由於這個變量在前面已經被建立過了 – 咱們只須要改變它。ui

字符串和整型


Swift是一門類型安全的編程語言,類型安全特指的含義包括:每個變量都必須有一個特定的「類型」。Xcode爲咱們建立的str變量擁有一個由字母組合「Hello, playground」組成的字符串,因此Swift爲這個變量賦予了String類型。spa

換句話說,若是咱們想存儲一我的的年齡,那咱們可能須要建立這樣一個變量:翻譯

var age = 38複製代碼

這個變量擁有一個整數, 因此Swift賦予它Int類型 – Int是「integer」的簡寫。若是你的數比較大,Swift容許使用下劃線做爲千位分隔符。這些分隔符不會改變數字表明的絕對數值,它們只是讓數字閱讀起來更方便。code

例如:

var population = 8_000_000複製代碼

String和Int是不一樣的類型,不能混用。所以,你能夠把str的值改爲「Goodbye」,但你不能把它改爲38,由於38是一個Int類型,不是一個String類型。

多行字符串


標準的Swift字符串使用雙引號表示,但在雙引號之間你不能換行。若是你想要表示多行的字符串,須要使用將雙引號首尾的引號個數由一個改爲三個,就像下面這樣:

var str1 = """ 這個字符串 跨越了 多行 """複製代碼

Swift對於書寫這些引號有着特別的規定:開始的三個引號和結束的三個引號都必須獨佔一行,但它們佔的那兩行都不會算進最終的字符串裏。假如你只是想利用多行字符串來使代碼看起來更整潔,你能夠經過在每行的行尾添加一個\來確保換行不會進入最終的字符串, 就像這樣:

var str2 = """ 這個字符串 \ 看起來跨越了多行, \ 實際上沒有 """複製代碼

雙精度浮點型和布爾型


Swift中還有兩種基礎的數據類型,它們是雙精度浮點數類型和布爾類型,你將會常常用到它們。」Double」被用來表明「雙精度浮點數」,這是表示諸如38.1, 或者3.141592654這樣的小數的一種高級的說法。每當你經過一個分數建立一個變量時,Swift都會自動賦予這個變量Double類型。

舉個例子:

var pi = 3.141複製代碼

雙精度浮點數有別於整數,也不能混用。至於布爾類型則更簡單一些:它們只有true和false兩種值,因此當你用true或者false建立一個變量時,Swift會自動賦予這個變量布爾類型


舉個例子:

var awesome = true複製代碼

字符串插值


你已經在前面學到了如何在代碼中直接輸入字符串的值,不過Swift還提供了一種被稱爲「字符串插值」的特性。這個特性容許你在字符串值裏插入變量,從而動態地給一個String類型的變量賦值。在字符串內部,你能夠放置任意類型,任意數量的變量。 要放置這些變量,你須要以一個反斜槓開始,即\,而後跟上用圓括號包起來的變量名。

舉個例子:

var score = 85 var str = "你的分數是\(score)"複製代碼

你將會在Playground的輸出區域裏看到,上面的操做會把 str變量的值設置爲「你的分數是85」。


多嘗試幾回,經過字符串插值組合出任何你想要的字符串。

var results = "測試結果以下: \(str)"複製代碼

在以後你還會學到,字符串插值不只能夠用來放置變量,還能夠用來運行代碼。

常量


前面提到變量之因此被稱爲變量是由於你能夠隨着時間的推移改變它們,這一點很是有用。不過,有些時候你只須要設置一次值而後就再也不改變了,這種狀況下咱們使用常量。對應給變量用的var關鍵字,常量用let關鍵字表示。let關鍵字用來聲明常量,常量的值只能被設置一次,而且沒法被修改。

舉個例子:

let taylor = "swift"複製代碼

若是你嘗試改變常量的值,Xcode會拒絕運行你的代碼。這是一種安全機制,以防止你失手改變一些原本不該該被改變的東西。在書寫Swift代碼的時候,除非你明確想要改變,你應當儘可能使用let關鍵字。實際上,若是你用了var聲明變量但以後都沒有再對它進行改變,Xcode將會發出警告。

類型註解


Swift基於變量和常量在建立時被賦予的值爲它們分配了一個類型。所以,當你書寫以下的代碼時,Swift知道這裏麪包含了一個字符串:

let str = "Hello, playground"複製代碼

它將把str看成一個String類型,所以以後你就不能再給它賦值一個整數值或者布爾值。 這個過程被稱爲類型推斷。SwiftSwift可以基於你建立一個東西的方式來推斷它的類型。
若是你想顯式地聲明數據的類型而不是依賴Swift的類型推斷,你能夠這麼寫:

let album: String = "Reputation" 
let year: Int = 1989 
let height: Double = 1.78 
let is: Bool = true複製代碼

留心布爾類型的縮寫名是Bool,一樣地,整數類型也是採用縮寫的Int。

總結


讓咱們來總結一下。

  • 咱們使用var來建立變量,使用let來建立常量。如無必要使用變量,應當儘量地使用常量。
  • String類型一般以雙引號來開始和結束。若是你想要字符串可以跨越多行,則須要把引號替換爲三個。
  • Int類型存儲整數,Double存儲小數,而Bool則存儲true或者false。
  • 字符串插值容許你經過在字符串內部放置其餘的變量和常量的方式來建立新的字符串。
  • Swift經過類型推斷來給變量或者常量分配類型,不過你也能夠顯式地提供類型。

個人公衆號

這裏有Swift及計算機編程的相關文章,以及優秀國外文章翻譯,歡迎關注~

相關文章
相關標籤/搜索