二元表達(dá)式(Binary Expressions)
二元表達(dá)式由 "左邊參數(shù)" + "二元運算符" + "右邊參數(shù)" 組成, 它有如下的形式:
left-hand argument operator right-hand argument
Swift 標(biāo)準(zhǔn)庫提供了如下的二元運算符:
-
求冪相關(guān)(無結(jié)合,優(yōu)先級160)
-
<< 按位左移(Bitwise left shift)
-
按位右移(Bitwise right shift)
-
乘除法相關(guān)(左結(jié)合,優(yōu)先級150)
-
* 乘
-
/ 除
-
% 求余
-
&* 乘法,忽略溢出( Multiply, ignoring overflow)
-
&/ 除法,忽略溢出(Divide, ignoring overflow)
-
&% 求余, 忽略溢出( Remainder, ignoring overflow)
-
& 位與( Bitwise AND)
-
加減法相關(guān)(左結(jié)合, 優(yōu)先級140)
-
+ 加
-
- 減
-
&+ Add with overflow
-
&- Subtract with overflow
-
| 按位或(Bitwise OR )
-
^ 按位異或(Bitwise XOR)
-
Range (無結(jié)合,優(yōu)先級 135)
-
.. 半閉值域 Half-closed range
-
... 全閉值域 Closed range
-
類型轉(zhuǎn)換 (無結(jié)合,優(yōu)先級 132)
-
is 類型檢查( type check)
-
as 類型轉(zhuǎn)換( type cast)
-
Comparative (無結(jié)合,優(yōu)先級 130)
-
< 小于
-
<= 小于等于
-
大于
-
= 大于等于
-
== 等于
-
!= 不等
-
=== 恒等于
-
!== 不恒等
-
~= 模式匹配( Pattern match)
-
合取( Conjunctive) (左結(jié)合,優(yōu)先級 120)
-
析取(Disjunctive) (左結(jié)合,優(yōu)先級 110)
-
三元條件(Ternary Conditional )(右結(jié)合,優(yōu)先級 100)
-
?: 三元條件 Ternary conditional
-
賦值 (Assignment) (右結(jié)合, 優(yōu)先級 90)
-
= 賦值(Assign)
-
*= Multiply and assign
-
/= Divide and assign
-
%= Remainder and assign
-
+= Add and assign
-
-= Subtract and assign
-
<<= Left bit shift and assign
-
= Right bit shift and assign
-
&= Bitwise AND and assign
-
^= Bitwise XOR and assign
-
|= Bitwise OR and assign
-
&&= Logical AND and assign
-
||= Logical OR and assign
關(guān)于這些運算符(operators)的更多信息,請參見:Basic Operators and Advanced Operators.
注意
在解析時, 一個二元表達(dá)式表示為一個一級數(shù)組(a flat list), 這個數(shù)組(List)根據(jù)運算符的先后順序,被轉(zhuǎn)換成了一個tree. 例如: 2 + 3 5 首先被認(rèn)為是: 2, + , 3, , 5. 隨后它被轉(zhuǎn)換成 tree (2 + (3 * 5))
二元表達(dá)式語法
二元表達(dá)式 → 二元運算符 前置表達(dá)式
二元表達(dá)式 → 賦值運算符 前置表達(dá)式
二元表達(dá)式 → 條件運算符 前置表達(dá)式
二元表達(dá)式 → 類型轉(zhuǎn)換運算符
二元表達(dá)式列表 → 二元表達(dá)式 二元表達(dá)式列表 可選