发布于 2015-06-14 01:59:48 | 210 次阅读 | 评论: 0 | 来源: 网络整理

二元表达式(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))
 


二元表达式语法
二元表达式 → 二元运算符 前置表达式
二元表达式 → 赋值运算符 前置表达式
二元表达式 → 条件运算符 前置表达式
二元表达式 → 类型转换运算符
二元表达式列表 → 二元表达式 二元表达式列表 可选
 

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务