標準 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 上的原始碼中找到優先組的實際定義