Swift - 運算子



什麼是 Swift 中的運算子?

運算子是告訴編譯器執行特定數學或邏輯操作的符號。或者我們可以說運算子是用於在一個或多個運算元之間執行特定操作的特殊符號。

例如,要將兩個數字(例如 34 和 21)相加,我們將使用 + 運算子 (34 + 21 = 55)。

Swift 中的運算子型別

Swift 支援以下型別的運算子:

  • 算術運算子
  • 比較運算子
  • 邏輯運算子
  • 位運算子
  • 賦值運算子
  • 範圍運算子
  • 其他運算子

讓我們分別詳細討論每個運算子。

Swift 算術運算子

算術運算子用於對給定的運算元執行數學運算,如加法、除法、乘法等。它們始終作用於兩個運算元,但這些運算元的型別應相同。Swift 支援以下算術運算子:

運算子 名稱 示例
+ 加法 20 + 30 = 50
- 減法 30 - 10 = 20
* 乘法 10 * 10 = 100
/ 除法 20 / 5 = 4
% 取模 10 % 2 = 0

Swift 比較運算子

比較運算子用於比較兩個運算元並找出它們之間的關係。它們將結果返回為布林值(true 或 false)。Swift 支援以下比較運算子:

運算子 名稱 示例
(==) 等於 10 == 10 = true
!= 不等於 34 != 30 = true
> 大於 90 > 34 = true
< 小於 12 < 34 = true
>= 大於或等於 30 >= 10 = true
<= 小於或等於 10 <= 32 = true

Swift 邏輯運算子

邏輯運算子用於在給定的表示式之間執行邏輯運算。它還可以根據多個條件做出決策。它通常與布林值一起使用。Swift 支援以下邏輯運算子:

運算子 名稱 示例
&& 邏輯與 X && Y
|| 邏輯或 X || Y
! 邏輯非 !X

Swift 位運算子

位運算子用於操作整數的各個位。它們通常用於執行位級操作。Swift 支援以下位運算子:

運算子 名稱 示例
& 按位與 X & Y
| 按位或 X | Y
^ 按位異或 X ^ Y
~ 按位非 ~X
<< 左移 X << Y
>> 右移 X >> Y

Swift 賦值運算子

賦值運算子用於為給定變數分配和更新新值。Swift 支援以下賦值運算子:

運算子 名稱 示例
(=) 賦值 X = 10
+= 加法賦值 X = X + 12
-= 減法賦值 X = X - 12
*= 乘法賦值 X = X * 12
/= 除法賦值 X = X / 12
%= 取模賦值 X = X % 12
<<= 左移賦值 X = X << 12
>>= 右移賦值 X = X >> 12
&= 按位與賦值 X = X & 12
^= 按位異或賦值 X = X ^12
|= 按位或賦值 X = X | 12

Swift 其他運算子

除了通用運算子外,Swift 還支援一些特殊運算子,它們是:

運算子 名稱 示例
- 一元負號 -9
+ 一元正號 2
條件 ? X : Y 三元條件運算子 如果條件為真 ? 則值為 X : 否則值為 Y

Swift 高階運算子

除了基本運算子外,Swift 還提供了一些高階運算子,用於操作複雜值,它們是:

  • 算術溢位運算子
  • 恆等運算子
  • 恆等運算子

讓我們分別詳細討論每個運算子。

Swift 算術溢位運算子

算術溢位運算子用於執行算術運算,並在發生溢位時很好地處理溢位。或者我們可以說算術運算子與那些值可能超過最大或最小邊界的整數一起工作。Swift 支援以下算術溢位運算子:

運算子 名稱 示例
&+ 溢位加法 Num1 &+ Num2
&- 溢位減法 Num1 &- Num2
&* 溢位乘法 Num1 &* Num2

Swift 恆等運算子

恆等運算子用於確定給定變數是否引用同一個例項。這些運算子與物件和類一起使用。它們是引用型別運算子。Swift 支援以下型別的恆等運算子:

運算子 名稱 示例
+=== 恆等 Value1 === Value2
!== 不恆等 Value2 !== Value2

Swift 範圍運算子

範圍運算子用於定義範圍。它們用於迴圈、集合和控制流語句中。Swift 支援以下範圍運算子:

運算子 名稱 示例
X…Y 閉區間 1…3 = 1, 2, 3
X..<Y 半開區間 1..<3 = 1, 2
X… 或 …X 單側範圍 2… = 2, 3, 4,

Swift 運算子優先順序

運算子優先順序決定了表示式中術語的組合方式。這會影響表示式的計算方式。某些運算子的優先順序高於其他運算子;例如,乘法運算子的優先順序高於加法運算子。

例如,x = 7 + 3 * 2; 這裡,x 被賦值為 13,而不是 20,因為運算子 * 的優先順序高於 +,所以它首先與 3*2 相乘,然後加到 7 中。

這裡,優先順序最高的運算子出現在表的最上面,優先順序最低的出現在最下面。在表示式中,優先順序較高的運算子將首先被計算。

名稱 運算子 優先順序
主要表示式運算子 () [] . expr++ expr-- 從左到右
一元運算子

* & + - ! ~ ++expr --expr

* / %

+ -

>> <<

< > <= >=

== !=

從右到左
二元運算子 & ^ | && || 從左到右
三元運算子 ?: 從右到左
賦值運算子 (= += -= *= /= %= >>= <<= &= ^= |=) 從右到左
逗號 , 從左到右
廣告