标准 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 上的源代码中找到优先组的实际定义