标准 Swift 运算符的优先级
首先列出绑定更严格(更高优先级)的运算符。
运算符 | 优先组(≥3.0) | 优先权 | 关联性 |
---|---|---|---|
. |
∞ | 剩下 | |
? ,! ,++ ,-- ,[] ,() ,{} |
(后缀) | ||
! ,~ ,+ ,- ,++ ,-- |
(字首) | ||
~> (swift≤2.3) |
255 | 剩下 | |
<< ,>> |
BitwiseShiftPrecedence | 160 | 没有 |
* ,/ ,% ,& ,&* |
MultiplicationPrecedence | 150 | 剩下 |
+ ,- ,| ,^ ,&+ ,&- |
AdditionPrecedence | 140 | 剩下 |
... ,..< |
RangeFormationPrecedence | 135 | 没有 |
is ,as ,as? ,as! |
CastingPrecedence | 132 | 剩下 |
?? |
NilCoalescingPrecedence | 131 | 对 |
< ,<= ,> ,>= ,== ,!= ,=== ,!== ,~= |
ComparisonPrecedence | 130 | 没有 |
&& |
LogicalConjunctionPrecedence | 120 | 剩下 |
|| |
LogicalDisjunctionPrecedence | 110 | 剩下 |
DefaultPrecedence * | 没有 | ||
? … : |
TernaryPrecedence | 100 | 对 |
= ,+= ,-= ,*= ,/= ,%= ,<<= ,>>= ,&= ,|= ,^= |
AssignmentPrecedence | 90 | 对,任务 |
-> |
FunctionArrowPrecedence | 对 |
Version >= 3.0
-
DefaultPrecedence
优先级组高于TernaryPrecedence
,但与其他运算符无序。除此组外,其余优先级均为线性。 -
此表也可以在 Apple 的 API 参考中找到
-
可以在 GitHub 上的源代码中找到优先组的实际定义