操作符

作者: 牛1688 | 来源:发表于2020-10-22 11:47 被阅读0次

precedencegroupTablePrecedence {

    associativity: left

    higherThan: LogicalConjunctionPrecedence

}

precedencegroupSectionPrecedence {

    associativity: left

    higherThan: TablePrecedence

}

infixoperator+++ : TablePrecedence

infixoperator<<< : SectionPrecedence

precedencegroup: 定义了一个操作符优先级别。操作符优先级的定义和类型声明有些相似,一个操作符比需要属于某个特定的优先级。

infix:表示要定义的是一个中位操作符,即前后都是输入.

prefix: 前置运算符.

postfix:后置运算符.

associativity :定义了结合律,即如果多个同类的操作符顺序出现的计算顺序。

higherThan: 运算的优先级,点积运算是优先于乘法运算的。

lowerThan:来指定优先级低于某个其他组。

分别声明关联性和优先级

associativity Multiplicative left

precedence Multiplicative>Additive

precedence Exponentiative>Multiplicative

precedence Multiplicative {

  associativity(left)

  precedence(> Additive)

  precedence(< Exponentiative)

}

precedence Multiplicative {

  associativity: left

  precedence: higherThan(Additive)

  precedence: lowerThan(Exponentiative)

}

precedence Multiplicative {

  associativity(left)

  higherThan(Additive)

  lowerThan(Exponentiative)

}

precedence Multiplicative {

  associativity: left,

  higherThan: Additive,

  lowerThan: Exponentiative

}

precedence Multiplicative {

  associativity left

  higherThan Additive

  lowerThan Exponentiative

}

precedence Multiplicative {

  associativity left

  > Additive

  < Exponentiative

}

precedence Multiplicative : associativity(left),

higherThan(Additive),

lowerThan(Exponentiative)

precedence Multiplicative : associativity left,

higherThan Additive, lowerThan Exponentiative

precedence Multiplicative > Additive,

< Exponentiative,

associativity left

precedence left Multiplicative > Additive,

< Exponentiative

precedence associativity(left) Multiplicative > Additive,

< Exponentiative

Swift 标准库中已经定义了一些常用的运算优先级组,比如加法优先级 (AdditionPrecedence) 和乘法优先级 (MultiplicationPrecedence) 等,你可以在这里找到完整的列表

Standard library changes

precedencegroupAssignmentPrecedence {

  assignment: true

  associativity: right

}

precedencegroupTernaryPrecedence {

  associativity: right

  higherThan: AssignmentPrecedence

}

precedencegroupDefaultPrecedence {

  higherThan: TernaryPrecedence

}

precedencegroupLogicalDisjunctionPrecedence {

  associativity: left

  higherThan: TernaryPrecedence

}

precedencegroupLogicalConjunctionPrecedence {

  associativity: left

  higherThan: LogicalDisjunctionPrecedence

}

precedencegroupComparisonPrecedence {

  higherThan: LogicalConjunctionPrecedence

}

precedencegroupNilCoalescingPrecedence {

  associativity: right

  higherThan: ComparisonPrecedence

}

precedencegroupCastingPrecedence {

  higherThan: NilCoalescingPrecedence

}

precedencegroupRangeFormationPrecedence {

  higherThan: CastingPrecedence

}

precedencegroupAdditionPrecedence {

  associativity: left

  higherThan: RangeFormationPrecedence

}

precedencegroupMultiplicationPrecedence {

  associativity: left

  higherThan: AdditionPrecedence

}

precedencegroupBitwiseShiftPrecedence {

  higherThan: MultiplicationPrecedence

}

postfix operator ++

postfix operator --

// postfix operator !

prefix operator ++

prefix operator --

prefix operator !

prefix operator ~

prefix operator +

prefix operator -

// infix operator = : AssignmentPrecedence

infixoperator*=  : AssignmentPrecedence

infixoperator/=  : AssignmentPrecedence

infixoperator%=  : AssignmentPrecedence

infixoperator+=  : AssignmentPrecedence

infixoperator-=  : AssignmentPrecedence

infixoperator<<= : AssignmentPrecedence

infixoperator>>= : AssignmentPrecedence

infixoperator&=  : AssignmentPrecedence

infixoperator^=  : AssignmentPrecedence

infixoperator|=  : AssignmentPrecedence

// infix operator ?: : TernaryPrecedence

infixoperator||  : LogicalDisjunctionPrecedence

infixoperator&&  : LogicalConjunctionPrecedence

infixoperator<  : ComparisonPrecedence

infixoperator<=  : ComparisonPrecedence

infixoperator>  : ComparisonPrecedence

infixoperator>=  : ComparisonPrecedence

infixoperator==  : ComparisonPrecedence

infixoperator!=  : ComparisonPrecedence

infixoperator=== : ComparisonPrecedence

infixoperator!== : ComparisonPrecedence

infixoperator~=  : ComparisonPrecedence

infixoperator??  : NilCoalescingPrecedence

// infix operator as : CastingPrecedence

// infix operator as? : CastingPrecedence

// infix operator as! : CastingPrecedence

// infix operator is : CastingPrecedence

infixoperator..< : RangeFormationPrecedence

infixoperator... : RangeFormationPrecedence

infixoperator+  : AdditionPrecedence

infixoperator-  : AdditionPrecedence

infixoperator&+  : AdditionPrecedence

infixoperator&-  : AdditionPrecedence

infixoperator|  : AdditionPrecedence

infixoperator^  : AdditionPrecedence

infixoperator*  : MultiplicationPrecedence

infixoperator/  : MultiplicationPrecedence

infixoperator%  : MultiplicationPrecedence

infixoperator&*  : MultiplicationPrecedence

infixoperator&  : MultiplicationPrecedence

infixoperator<<  : BitwiseShiftPrecedence

infixoperator>>  : BitwiseShiftPrecedence

相关文章

  • Rxjava2-二、操作符

    Rxjava记录总结操作符:创建操作符、转换操作符、合并操作符、过滤操作符、其他操作符、条件操作符. 创建操作符 ...

  • Kotlin 笔记(二)集合和函数操作符

    总数操作符 过滤操作符 映射操作符 元素操作符 生产操作符 顺序操作符

  • 走进RxJava源码(三) -- 创建型操作符

    创建型操作符 create操作符 just操作符 fromArray操作符 empty操作符 range 操作符

  • RxJava2操作符

    操作符分类 操作符分类有十三种: 变换操作符 过滤操作符列表 组合操作符 错误处理操作符 辅助操作符 条件操作符 ...

  • js运算符与表达式

    操作符 一元操作符:++,-- 算术操作符:+,-,*,/,% 关系操作符:>,<,>=,<= 相等操作符:==,...

  • 操作符和表达式

    操作符 一元操作符(++,--) 算术操作符(+,-,*,/,%) 关系操作符(>,<,>=,<=,) 相等操作符...

  • Rxjava讲解(2)

    上面文章讲过创建操作符, 转换操作符,过滤操作符, 这篇文字介绍组合操作符,条件操作符,功能操作符。 组合操作符 ...

  • JavaScript高程读书笔记(2)

    五、操作符 算数操作符、位操作符、关系操作符、 相等操作符 一元操作符++和--:注意a+++,- 位操作符按位非...

  • rxjava2 学习笔记

    特点 链式调用 线程切换 操作符 创建操作符 转换操作符 过滤操作符 组合操作符 错误处理操作符 辅助性操作符 条...

  • Combine - Operator(操作符)(二)

    线程 操作符|编码 操作符 |合并 操作符|错误处理 操作符|处理多个订阅者 操作符 线程 操作符 receive...

网友评论

      本文标题:操作符

      本文链接:https://www.haomeiwen.com/subject/vecumktx.html