- Swift 4從零到精通iOS開發
- 張益琿
- 717字
- 2019-12-09 14:31:22
4.2 Swift語言中兩種特殊的運算符
前邊介紹過,Optional可選值類型是Swift語言的一大特點。Swift語言中的空合并運算符也是專門為Optional值類型所設計的。除了空合并運算符,Swift語言中的區間運算符也十分強大易用,熟練使用這些運算符將極大地提高開發效率。
4.2.1 空合并運算符
可選值類型(Optional)是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循環結構中,開發者常常會使用區間運算符來定義循環次數,示例如下:

提示
在for-in循環結構中,如果in關鍵字后面是一個集合,則變量index會自動獲取集合中的元素;如果in關鍵字后面是一個范圍,則index獲取到的是從左向右依次遍歷到的范圍索引數。
- Python自然語言處理實戰:核心技術與算法
- Learning Flask Framework
- C#程序設計基礎:教程、實驗、習題
- Learning Probabilistic Graphical Models in R
- Microsoft Azure Storage Essentials
- Spring Boot+MVC實戰指南
- Java EE企業級應用開發教程(Spring+Spring MVC+MyBatis)
- Building Dynamics CRM 2015 Dashboards with Power BI
- Learning iOS Security
- Java EE 7 with GlassFish 4 Application Server
- Appcelerator Titanium:Patterns and Best Practices
- Deep Learning for Natural Language Processing
- 深入理解Kafka:核心設計與實踐原理
- Mastering R for Quantitative Finance
- Go語言編程之旅:一起用Go做項目