Swift 支持大部分標準 C 語言的運算符,分為一元、二元和三元運算符。
- 一元運算符對單一操作對象操作(如 -a)。一元運算符分前置運算符和后置運算符,前置運算符需緊跟在操作對象之前(如 !b),后置運算符需緊跟在操作對象之后(如 i++)。
- ?二元運算符操作兩個操作對象(如 2 + 3),是中置的,因為它們出現在兩個操作對象之間。
- ?三元運算符操作三個操作對象,和 C 語言一樣,Swift 只有一個三元運算符,就是三目運算符(a ? b : c)。
1.賦值運算符: (=)
let a = 10
2.算術運算符: 加法(+)、減法(-)、乘法(*)、除法(/)
1 + 2 ; 5 - 3; 2 * 3; 10.0 / 2.5;
【說明】:加法運算符也可用于 String 的拼接。例如:
"hello, " + "world";
3.求余運算符: (%)
9 % 4; //結果為1
【說明】:不同于 C 語言和 Objective-C,Swift 中是可以對浮點數進行求余。例如:
8 % 2.5; //結果為0.5
4.自增和自減運算:自增(++)和自減(--)
- 當 ++ 前置的時候,先自増再返回;當 ++ 后置的時候,先返回再自增。
【注意】:it will be removed in Swift 3,可以不看。
5.一元負號運算符: (-)
- 一元負號(-)寫在操作數之前,中間沒有空格。比如:-3
6.一元正號運算符:? (+)
- 不做任何改變地返回操作數的值。
7.組合賦值運算符
- Swift 提供把其他運算符和賦值運算(=)組合的組合賦值運算符,組合加運算(+=)是其中一個例子。
8.比較運算符
- 所有標準 C 語言中的比較運算都可以在 Swift 中使用: ==、!=、>、<、>=、<=
- Swift 提供恒等(===)和不恒等(!==)這兩個比較符來判斷兩個對象是否引用同一個對象實例(具體看類和結構體章節)。
- 當元組中的值可以比較時,也可以使用這些運算符來比較它們的大小。例如,因為 Int 和 String 類型的值可以比較,所以類型為 (Int, String) 的元組也可以被比較。相反,Bool 不能被比較,也意味著存有布爾類型的元組不能被比較。
(1, "zebra") < (2, "apple"); //true (3, "apple") < (3, "bird"); //true (4, "dog") == (4, "dog"); //true
9.三元運算符:問題 ? 答案 1 : 答案 2
- 表示根據 問題成立與否作出二選一的操作。如果 問題 成立,返回 答案 1 的結果;反之返回 答案 2 的結果。
10.空合運算符:空合運算符(a ?? b)
- 對可選類型 a 進行空判斷,如果 a 包含一個值就進行解封,否則就返回一個默認值 b。表達式 a 必須是 Optional 類型。默認值 b 的類型必須要和 a 存儲值的類型保持一致。
- 空合運算符是對以下代碼的簡短表達方法:a != nil ? a! : b
11.區間運算符
- 閉區間運算符(a...b)定義一個包含從 a 到 b(包括 a 和 b)的所有值的區間。a 的值不能超過 b。?
- 半開區間(a..<b)定義一個從 a 到 b 但不包括 b 的區間。 之所以稱為半開區間,是因為該區間包含第一個值而不包括最后的值。
for index in 1...5 {print("\(index) * 5 = \(index * 5)"); //執行5次 }
12.邏輯運算
- 邏輯非(!a)
- 邏輯與(a && b)
- 邏輯或(a || b)