- Swift 5從零到精通iOS開發訓練營
- 張益琿編著
- 744字
- 2022-07-27 18:32:10
4.2 Swift語言中兩種特殊的運算符
前邊介紹過,Optional可選(值)類型是Swift語言的一大特點,Swift語言中的空合并運算符也是專門為Optional值類型所設計的。除了空合并運算符外,Swift語言中的區間運算符也十分強大易用,熟練使用這些運算符將極大地提高開發效率。
4.2.1 空合并運算符
可選值類型是Swift語言的一個獨特之處,空合并運算符就是針對可選值類型而設計的運算符。首先來看一段示例代碼:

上面的示例就是一個簡單的if-else的選擇結構,利用4.1.5小節介紹的條件運算符(三目運算符)可以將上面的代碼簡寫如下:
var q:Int? = 8 var value:Int value = (q != nil) ? (q!) : 0
使用條件運算符改寫后的代碼簡單很多,Swift語言中還提供了空合并運算符來更加簡潔地處理這種Optional類型值的條件選擇結構,空合并運算符由“??”表示,上面的代碼可以改寫成如下形式:
//空合并運算符 var q:Int? = 8 var value:Int value = q ?? 0
空合并運算符“??”是一個二元運算符,使用空合并運算符改寫后的代碼更加簡潔。其需要兩個操作數,第一個操作數必須為一個Optional值,如果此Optional值不為nil,則將其進行拆包操作,并作為空合并運算的運算結果。如果此Optional值為nil,則會將第二個操作數作為空合并操作運算的結果返回。使用空合并操作符來處理有關Optional值的選擇邏輯將十分方便。
4.2.2 區間運算符
在C語言中,關于范圍概念的描述常常會使用一個表達式來表示,例如:
//表示大于0小于10的范圍 index>0 && index<10
在Objective-C語言中提供了NSRange這樣一個結構體來描述范圍,雖然直觀了許多,但開發者在使用時需要構造NSRange實例,使用起來就略顯煩瑣。Swift中除了支持Range結構體來描述范圍外,還提供了一個區間運算符來快捷直觀地表示范圍區間。示例如下:
//創建范圍 >=0 且<=10 的閉區間 var range1 = 0...10 //創建范圍>=0 且<10 的半開區間 var range2 = 0..<10
也可以通過“~=”運算符來檢查某個數字是否包含于范圍中,示例如下:
//8是否在range1中 print(range1 ~= 8) //輸出 true
區間運算符常見于for-in循環結構中,開發者常常會使用區間運算符來定義循環次數,示例如下:
//a...b為閉區間寫法 for index in 0...3 { print(index) } //a..<b為左閉右開區間 for index in 0..<3 { print(index) }
提示
在for-in循環結構中,如果in關鍵字后面是一個集合,則變量index會自動獲取集合中的元素;如果in關鍵字后面是一個范圍,則index獲取到的是從左向右依次遍歷到的范圍索引數。
- 數據結構(Java語言描述)
- Mastering Articulate Storyline
- Access 2010數據庫基礎與應用項目式教程(第3版)
- OpenShift在企業中的實踐:PaaS DevOps微服務(第2版)
- EPLAN實戰設計
- QGIS By Example
- Spring Boot企業級項目開發實戰
- JavaScript腳本特效編程給力起飛
- ActionScript 3.0從入門到精通(視頻實戰版)
- Tableau Dashboard Cookbook
- Python Social Media Analytics
- 軟件測試(慕課版)
- Python數據可視化之matplotlib實踐
- Java EE 7 Development with WildFly
- 你好!Python