運(yùn)算符是一個(gè)符號(hào),告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作。 Objective-C/Swift 語言有豐富的內(nèi)置操作符,并提供以下類型的運(yùn)算符:
本教程將一個(gè)接一個(gè)介紹算術(shù),關(guān)系,邏輯,位分配和其他運(yùn)算符。
下表列出了所有 Swift 語言支持的算術(shù)運(yùn)算符。假設(shè)變量A=10,變量B=20,則:
運(yùn)算符 | 描述 | 示例 |
---|---|---|
+ | 兩個(gè)操作數(shù)相加 | A + B = 30 |
− | 從第一操作減去第二操作數(shù) | A − B = -10 |
* | 兩個(gè)操作數(shù)相乘 | A * B = 200 |
/ | 由分母除以分子 | B / A = 2 |
% | 模運(yùn)算符,得到其余數(shù)在整數(shù)/浮點(diǎn)相除后 | B % A = 0 |
++ | 增量運(yùn)算符,整數(shù)值增加一 | A++ = 11 |
-- | 遞減運(yùn)算符,整數(shù)值減一 | A-- = 9 |
下表列出了所有 Swift 語言支持的關(guān)系運(yùn)算符。假設(shè)變量A=10,變量B=20,則:
操作符 | 描述 | 示例 |
---|---|---|
== | 檢查兩個(gè)操作數(shù)的值是否相等; 如果是,則條件變?yōu)檎?/td> | (A == B) 非 true. |
!= | 檢查兩個(gè)操作數(shù)的值是否相等; 如果值不相等,則條件變?yōu)檎?/td> | (A != B) 是 true. |
> | 如果左操作數(shù)的值大于右操作數(shù)的值; 則條件變?yōu)檎?/td> | (A > B) 非 true. |
< | 如果左操作數(shù)的值小于右操作數(shù)的值; 則條件變?yōu)檎?/td> | (A < B) 是 true. |
>= | 如果左操作數(shù)的值大于或等于右操作數(shù)的值;則條件變?yōu)檎?/td> | (A >= B) 非 true. |
<= | 如果左操作數(shù)的值小于或等于右操作數(shù)的值; 則條件變?yōu)檎?/td> | (A <= B) 是 true. |
下表列出了所有 Swift 語言支持的邏輯運(yùn)算符。假設(shè)變量A=1,變量B=0,則:
操作符 | 描述 | 示例 |
---|---|---|
&& | 所謂邏輯與運(yùn)算符。如果兩個(gè)操作數(shù)是不為零,則條件為真 | (A && B) 為 false |
|| | 所謂邏輯或運(yùn)算。如果任何兩個(gè)操作數(shù)是非零那么條件變?yōu)檎?/td> | (A || B) 為 true |
! | 所謂的邏輯非運(yùn)算符。使用反轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果條件為真,那么邏輯非操作后,結(jié)果為假 | !(A && B) 為 true |
按位操作符對(duì)位和位操作進(jìn)行一下。 &, |, 和 ^,其真值表如下
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Assume if A = 60; and B = 13; now in binary format they will be as follows: A = 0011 1100 B = 0000 1101 ----------------- A & B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011
Swift 語言支持位運(yùn)算符列出如下表。假設(shè)變量A=60,變量B=13,則:
操作符 | 描述 | 示例 |
---|---|---|
& | 如果它存在于兩個(gè)操作數(shù)就是二進(jìn)制與操作拷貝位的結(jié)果 | (A & B) = 12, 也就是 0000 1100 |
| | 二進(jìn)制或運(yùn)算拷貝位,如果它存在一個(gè)操作數(shù) | (A | B) = 61, 也就是 0011 1101 |
^ | 二進(jìn)制異或拷貝位,如果它被設(shè)置在一個(gè)操作數(shù)而不是兩個(gè) | (A ^ B) = 49, 也就是 0011 0001 |
~ | 二進(jìn)制的補(bǔ)操作符是一元的,具有“翻轉(zhuǎn)”位的效果 | (~A ) = -61, 也就是 1100 0011 |
<< | 二進(jìn)制向左移位運(yùn)算符。左操作數(shù)的值向左移動(dòng)由右操作數(shù)指定的位數(shù) | A << 2 = 240, 也就是1111 0000 |
>> | 二進(jìn)制向右移位運(yùn)算符。左操作數(shù)的值是通過正確的操作數(shù)指定的位數(shù)向右移動(dòng) | A >> 2 = 15, 也就是 0000 1111 |
Swift 支持以下賦值運(yùn)算符:
運(yùn)算符 | 描述 | 示例 |
---|---|---|
= | 簡(jiǎn)單賦值運(yùn)算符,賦值從右側(cè)的操作數(shù)到左側(cè)的操作數(shù) | C = A + B 將分配A + B 的值到 C |
+= | 相加和賦值運(yùn)算符,相加右操作數(shù)和左操作數(shù)并將結(jié)果分配給左操作數(shù) | C += A 相當(dāng)于 C = C + A |
-= | 減法和賦值運(yùn)算符,它從左邊的操作數(shù)減去右操作數(shù),并將結(jié)果分配給左操作數(shù) | C -= A 相當(dāng)于 C = C - A |
*= | 乘法和賦值運(yùn)算符,右邊的操作數(shù)乘以左操作數(shù),并將結(jié)果分配給左操作數(shù) | C *= A 相當(dāng)于 C = C * A |
/= | 相除并賦值運(yùn)算符,它把左操作數(shù)與右操作數(shù)相除,并結(jié)果分配給左操作數(shù) | C /= A 相當(dāng)于 C = C / A |
%= | 模量和賦值運(yùn)算符,它需要使用兩個(gè)操作數(shù)模量并結(jié)果分配給左操作數(shù) | C %= A 相當(dāng)于 C = C % A |
<<= | 左移賦值運(yùn)算符 | C <<= 2 相當(dāng)于 C = C << 2 |
>>= | 向右移位并賦值運(yùn)算符 | C >>= 2 相當(dāng)于 C = C >> 2 |
&= | 按位與賦值運(yùn)算符 | C &= 2 相當(dāng)于 C = C & 2 |
^= | 按位異或并賦值運(yùn)算符 | C ^= 2 相當(dāng)于 C = C ^ 2 |
|= | 按位或并賦值運(yùn)算符 | C |= 2 相當(dāng)于 C = C | 2 |