Swift學習筆記總結(一)

類型別名

類型別名(type aliases)就是給現有類型定義另一個名字。你可以使用 typealias 關鍵字來定義類型別名。

typealias AudioSample = UInt16

定義了之后,可以使用這個別名來代替之前的

var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound 現在是 0(本例中, AudioSample 被定義為 UInt16 的一個別名。因為它是別名, AudioSample.min 實際上是 UInt16.mi ,所以會給 賦一個初值 。)

BOOL(布爾值)

Swift 有一個基本的布爾(Boolean)類型,叫做 Bool 。布爾值指邏輯上的(logical,因為它們只能是真或者 假。不再有YES或者NO這兩個,會報錯,而且也敲不出來了。Swift 有兩個布爾常量, true 和 false :

let orangesAreOrange = true let turnipsAreDelicious = false

orangesAreOrange 和 turnipsAreDelicious 的類型會被推斷為 Bool ,因為它們的初值是布爾字面量。就像之 前提到的 Int 和 Double 一樣,如果你創建變量的時候給它們賦值 true 或者 false ,那你不需要將常量或者變量 聲明為 Bool 類型。初始化常量或者變量的時候如果所賦的值類型已知,就可以觸發類型推斷,這讓 Swift 代碼 更加簡潔并且可讀性更高。

當你編寫條件語句比如 if 語句的時候,布爾值非常有用:

if turnipsAreDelicious { print("Mmm, tasty turnips!")

} else {print("Eww, turnips are horrible.")

}// 輸出 "Eww, turnips are horrible."

條件語句,例如 if ,請參考控制流。

如果你在需要使用 Bool 類型的地方使用了非布爾值,Swift 的類型安全機制會報錯。下面的例子會報告一個編譯 時錯誤:

let i = 1 if i {

// 這個例子不會通過編譯,會報錯 }

然而,下面的例子是合法的:

let i = 1 if i == 1 {

// 這個例子會編譯成功

}

i == 1的比較結果是BOOL 類型,所以第二個例子可以通過類型檢查。類似 這樣的比較,請參考基本操作 符。

元祖

元組(tuples)把多個值組合成一個復合值。元組內的值可以是任意類型,并不要求是相同類型。

let http404Error = (404, "Not Found")// http404Error 的類型是 (Int, String),值是 (404, "Not Found")

(404, "Not Found") 元組把一個 Int 值和一個 String 值組合起來表示 HTTP 狀態碼的兩個部分:一個數字和一 個人類可讀的描述。這個元組可以被描述為“一個類型為 (Int, String) 的元組”。

你可以將一個元組的內容分解(decompose)成單獨的常量和變量,然后你就可以正常使用它們了:

let (statusCode, statusMessage) = http404Error

print("The status code is \(statusCode)")// 輸出 "The status code is 404"

print("The status message is \(statusMessage)") // 輸出 "The status message is Not Found"

如果你只需要一部分元組值,分解的時候可以把要忽略的部分用下劃線( _ )標記:

(Int, I

let (justTheStatusCode, _) = http404Error print("The status code is \(justTheStatusCode)") // 輸出 "The status code is 404”

而且你還可以像訪問數組那樣取得第零個位置以及其他位置的值是神馬(下標是從0開始的哦)

print("The status code is \(http404Error.0)")// 輸出 "The status code is 404"print("The status message is \(http404Error.1)") // 輸出 "The status message is Not Found"

當然了你還可以在定義元祖的時候給單個元素進行命名:

let http200Status = (statusCode: 200, description: "OK")

給元組中的元素命名后,你可以通過名字來獲取這些元素的值:

print("The status code is \(http200Status.statusCode)")

// 輸出 "The status code is 200"

print("The status message is \(http200Status.description)") // 輸出 "The status message is OK"

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 關于 Swift 重要這個文檔所包含的準備信息, 是關于開發的 API 和技術的。這個信息可能會改變, 根據這個文...
    無灃閱讀 4,378評論 1 27
  • 基礎部分(The Basics) 當推斷浮點數的類型時,Swift 總是會選擇Double而不是Float。 結合...
    gamper閱讀 1,333評論 0 7
  • About me: 在學習Swift之前完完全全的零基礎編程,不知道變量與常量區別的那種零基礎。 教程主要看 ht...
    lightandall閱讀 345評論 0 1
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 十月寒秋清風夜, 蒼穹枯坐上弦月。 月缺人去情難絕, 徒對清影傷離別。 幽幽往事誰訴說, 落落孤燈明里滅。 醉臥花...
    放羊的小孩兒閱讀 223評論 1 2