標籤:
操作符是用於檢測、更改或者組合值的特殊符號或短語。例如,加法操作符 (+) 將兩個數字加到一起 (如 let i = 1 + 2)。更複雜的例子包括邏輯與操作符 && (如 if enteredDoorCode && passedRetinaScan) 和自增操作符 ++i,就是把 i 的值加1的捷徑。
Swift 支援大多數標準的C 操作符並且改善了幾項功能以消除常見的編碼錯誤。賦值操作符 (=) 不傳回值,是為了防止想用等於操作符(==)時不小心用成了賦值操作符。算數運算子 (+, -, *, /, % 等等) 檢測並禁止值溢出,以免運算時得出的結果大於或小於類型允許的範圍。
不像C,Swift 可以對浮點數進行取餘操作 (%) 。 Swift 還提供兩個範圍操作符 (a..<
b 和 a…b) ,這在C裡是沒有的,用來表示一個範圍的值。
現在我們來簡單介紹下 Swift 裡的常用操作符。
術語
操作符分一元、二元和三元:
一元操作符操作於一個單一目標(如 -a)。一元首碼操作符在它們的目標之前緊跟出現(如 !b),一元尾碼操作符在它們的目標之後緊跟出現(如 i++)。
二元操作符操作於兩個目標(如 2 + 3),是中綴操作符,因為它出現在兩個目標的中間。
三元操作符操作於三個目標。像 C 一樣,Swift 只有一個三元操作符,就是三元條件操作符 (a ? b : c)。
操作符影響的值稱為運算元。在運算式 1 + 2 中,符號 + 是一個二元操作符,它的運算元是值 1 和 2。
一、一元運算子
(一)、負號運算子
(二)、正號運算子
注 : 乘 (*)、 除 (/)與OC用法相同
(三)、自增、自減運算子
自減同上,本質上 跟OC沒什麼差別
二、二元運算子
(一)、賦值運算子
1、賦值操作符 (a = b) 用 b 的值初始化或更新 a 的值:
2、如果賦值操作符的右邊是一個有多個值的元組,它的元素可以馬上被拆解為多個常量或變數:
3、不像 C 和 Objective-C 裡的賦值操作符,Swift 裡的賦值操作符自身並不傳回值。下面的語句是不行的:
這個特性防止了賦值操作符 (=) 被誤用作等於操作符 (==) 。Swift 幫你避免 if x = y 這些錯誤在代碼裡出現。
(二)、取餘運算子
(三)、組合賦值運算子
(四)、比較子
Swift 支援所有標準的 C 比較操作符,具體功能和使用方法與C語言相同,在此不再贅述
等於 (a == b)
不等於 (a != b)
大於 (a > b)
小於 (a < b)
大於或等於 (a >= b)
小於或等於 (a <= b)
(五)、邏輯運算子
Swift 支援基於C語言的三種標準的邏輯操作符:
邏輯否 (!a)
邏輯與 (a && b)
邏輯或 (a || b)
下面兩個是swift新增的兩個運算子:
(六)、區間運算子
1、全閉區間
閉合範圍操作符 (a…b) 定義了一個從 a 到 b 的範圍,同時包括a 和 b 的值。a 的值必須不能大於 b 。
2、半開半閉區間
半開範圍特別適用於從0開始的列表,如數組,一直數到(但不包括)列表的長度
(七)、空合運算子
空合運算子(a ?? b
)將對可選類型a
進行空判斷,如果a
包含一個值就進行解鎖,否則就返回一個預設值b
.這個運算子有兩個條件:
運算式a
必須是Optional類型
預設值b
的類型必須要和a
儲存值的類型保持一致
三、三元運算子
三元條件操作符分三個部分,形式是這樣的 question ? answer1 : answer2。
例如:a > b ? a : b
使用功能同C語言的三木運算子,在此不再贅述
Swift語言指南(二)基礎操作符