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