Swift 基礎之布林值和元組

2021-10-01 10:59:35 字數 2871 閱讀 4232

swift 有乙個基本的布林(boolean)型別,叫做 bool。布林值指邏輯上的(logical),因為它們只能是真或者假。swift 有兩個布林常量,true 和 false:

let orangesareorange = true

let turnipsaredelicious = false

orangesareorange 和 turnipsaredelicious 的型別會被推測為 bool,因為它們的初值是布林字面量。就像之前提到的 int 和 double 一樣,如果你建立變數的時候給它們賦值 true 或者 false,那你不需要將常量或者變數宣告為 bool 型別。初始化常量或者變數的時候如果 所賦的值型別已知,就可以觸發型別推測,這讓 swift **更加簡潔並且可讀性更高。

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

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

如果你在需要使用 bool 型別的地方使用了非布林值,swift 的型別安全機制會報錯。下面的例子會報告乙個編譯時錯誤:

let i = 1

if i

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

let i = 1

if i == 1

i == 1 的比較結果是 bool 型別,所以第二個例子可以通過型別檢查。類似 i == 1 這樣的比較。

和 swift 中的其他型別安全的例子一樣,這個方法可以避免錯誤並保證這塊**的意圖總 是清晰的。

元組(tuples)把多個值組合成乙個復合值。元組內的值可以使任意型別,並不要求是相 同型別。

下面這個例子中,(404, 「not found」)是乙個描述 http 狀態碼(http status code)的 元組。http 狀態碼是當你請求網頁的時候 web 伺服器返回的乙個特殊值。如果你請求 的網頁不存在就會返回乙個 404 not found 狀態碼。

// http404error 的型別是 (int, string),值是 (404, "not found")

(404, 「not found」)元組把乙個 int 值和乙個 string 值組合起來表示 http 狀態碼的兩個 部分:乙個數字和乙個人類可讀的描述。這個元組可以被描述為「乙個型別為(int, string)的 元組」。

你可以把任意順序的型別組合成乙個元組,這個元組可以包含所有型別。只要你想,你可 以建立乙個型別為(int, int, int)或者(string, bool)或者其他任何你想要的組合的元組。

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

// 輸出 "the status code is 404"

print("the status message is \(statusmessage)")

// 輸出 "the status message is not found"

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

// 輸出 "the status code is 404"

此外,你還可以通過下標來訪問元組中的單個元素,下標從零開始:

// 輸出 "the status code is 404"

// 輸出 "the status message is not found"

你可以在定義元組的時候給單個元素命名:

let http200status = (statuscode: 200, description: "ok")
給元組中的元素命名後,你可以通過名字來獲取這些元素的值:

// 輸出 "the status code is 200"

// 輸出 "the status message is ok"

作為函式返回值時,元組非常有用。乙個用來獲取網頁的函式可能會返回乙個(int, string) 元組來描述是否獲取成功。和只能返回乙個型別的值比較起來,乙個包含兩個不同型別值 的元組可以讓函式的返回資訊更有用。

注意:元組在臨時組織值的時候很有用,但是並不適合建立複雜的資料結構。如果你的資料結構並不是臨時使用,請使用類或者結構體而不是元組。請參考類和結構體。

布林值和字段合併

none str int float list tuple bool if a none 轉換成布林值是false a 0 轉換成布林值是false a 0.0 轉換成布林值是false a 轉換成布林值是false a list 轉換成布林值是false a 0 轉換成布林值是true a 轉換成...

布林值和Boolean型別

今天在複習js基本資料型別的時候發現了乙個以前忽略的知識點,那就是boolean型別和布林值的區別。首先,要明確一下,boolean型別是與布林值對應的引用類。舉例來看,var object new boolean false var value true alert object value 可能...

布林值 Python入門丨布林值和四種語句

計算機的邏輯判斷,只有兩種結果,就是true 真 和false 假 計算真假的過程,叫做布林運算。true和false就叫布林值。注 只要條件判斷為真,while語句就會一直迴圈執行 例項print 3 5 print 3 5 print one one print one piece 輸出結果 t...