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