1. 程式人生 > >《iOS移動開發從入門到精通》圖書連載12:元組型別、一元、二元和三元運算子、 比較運算子

《iOS移動開發從入門到精通》圖書連載12:元組型別、一元、二元和三元運算子、 比較運算子

3.2.5 元組型別

元組是一個包含了若干個相關聯變數的物件。

1        let people = ("John",33)

由於Swift的型別推導,people被推導為(String, Int)型別的常量。

元組作為一個臨時複合值,元組在某些時候是非常有用的。它經常被用作函式返回值,用來傳遞一些資料。

例如一個用來獲取網頁的函式,可能會返回一個(Int, String)元組,用來描述是否獲取成功。和只能返回一個型別的值比較起來,一個包含兩個不同型別值的元組,可以讓函式的返回資訊更加有用:

1     let http404Error = (404,"Not Found")
2     let http200Status =(statusCode:200, description:"OK")
 

從一個元組中單獨取出某一個數據,有兩種方式。第一種方式是使用下標:

1     let http404Error = (404,"Not Found")
2     print("errorCode =\(http404Error.0)")           // 輸出結果為:errorCode = 404

第二種方式如下:

1     let http404Error = (404,"Not Found")
2     let (errorCode, errorMessage) =http404Error
3     print("errorCode =\(http404Error.0)")           // 輸出結果為:errorCode = 404
 

如果之前是按照鍵值對建立的元組,可以按照訪問屬性的形式來獲取相關的值:

1     let people = (name:"John",age:33)
2     print("People's name is\(people.name), and age is \(people.age).")

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

3.2.6 一元、二元和三元運算子

運算子是一種特定的符號或表示式,用來檢驗、修改或合併變數。例如,用於求和的運算子+,可以對兩個數字進行求和,還有邏輯運算子&&等等。

運算子都是一元、二元或三元的。其中一元運算子用於處理單個物件,一元字首運算子出現在物件前,一元后綴運算子出現在物件的後面。

一元減號和加號

在一個數值的前面,新增的一個-減號,叫作一元減運算子。同樣在數值前面新增的+加號,被稱為一元加運算子,它們的用法如下:

1     let one = 1
2     let minusOne = -one                              //結果為:-1
3     let plusOne = +one                                 //結果為:1
4     let anotherOne = -minusOne                //結果為:1

一元邏輯非運算子

在數值的前面,新增!感嘆號運算子,可以對邏輯數值進行邏輯非運算。

1     let isHero = false                                     
2     let playerType = !isHero                          //結果為:true

請注意無論是減號、加號還是感嘆號運算子,它們與右側的數值之間不能有空格。

另外++遞增和--遞減等在Swift1.0版本中出現的一元運算子,在新版的Swift語言中已經被移除,這裡就不再進行講解。

二元運算子

二元運算子是用來對兩個目標進行操作的,所以二元運算子常常出現在兩個數值之間的位置。如常用的加、減、乘、除數學運算子:

1     3 + 2                                                          //結果為:5
2     3 - 2                                                          //結果為:1
3     3 * 2                                                           //結果為:6
4     3 / 2                                                           //結果為:1

餘數運算子( x % y )可以求出多少個 y 的倍數能夠剛好放進 x中,並且返回剩下的值,也就是餘數。在Swift中您可以對正數、負數進行取餘計算:

1     5 % 2                                                          //結果為:1
2     -5 % 2                                                        //結果為:-1

三元條件運算子

三元運算子擁有三個部分,它看起來是這樣的:question ? answer1 :answer2。這是一種基於question是真還是假,來選擇後面兩個表示式之一的便捷寫法。如果question是真,則會返回answer1,否則返回answer2。

1     let score = 66
2     let result = (score >= 60) ?"通過考核" : "未通過考核"             //結果為:通過考核
 

三元條件運算子提供了一個非常有效的簡寫,以根據指定的條件作出相應的選擇。

3.2.7 比較運算子

您會經常使用比較運算子,對兩個數值進行比較,從而根據比較結果,進行相應的操作。Swift支援所有C語言的標準比較運算子。每個比較運算子都會返回一個Boolean值,來表示語句是否為真:

1     2 > 1                                       //結果為:true
2     2 < 1                                       //結果為:false
3     2 >= 1                                    //結果為:true
4     2 <= 1                                    //結果為:false
5     2 == 1                                    //結果為:false
6     2 != 1                                      //結果為:true

比較運算子通常被用在if條件語句當中:

1     let workingAge = 18
2     if workingAge >= 15
3     {
4         print("享受15天年假")
5     }

擁有同樣值數量的元組也可以進行比較,前提是元組中的值是可以比較的。元組以從左到右的順序,進行值大小的比較,直到找到兩個不相等的值為止。如果兩個元組的所有值都相同,則兩個元組被認為是相等的:

1     (2, 3) > (1, 3)                                             //結果為:true
2     ("Class1", 98) >("Class2", 54)                           //結果為:false
3     (7, "Sunday") == (7,"Sunday")               //結果為:true