Operators that bound tighter (higher precedence) are listed first.
| Operators | Precedence group (≥3.0) | Precedence | Associativity | 
|---|---|---|---|
. | ∞ | left | |
?, !, ++, --, [], (), {} | (postfix) | ||
!, ~, +, -, ++, -- | (prefix) | ||
~> (swift ≤2.3) | 255 | left | |
<<, >> | BitwiseShiftPrecedence | 160 | none | 
*, /, %, &, &* | MultiplicationPrecedence | 150 | left | 
+, -, |, ^, &+, &- | AdditionPrecedence | 140 | left | 
..., ..< | RangeFormationPrecedence | 135 | none | 
is, as, as?, as! | CastingPrecedence | 132 | left | 
?? | NilCoalescingPrecedence | 131 | right | 
<, <=, >, >=, ==, !=, ===, !==, ~= | ComparisonPrecedence | 130 | none | 
&& | LogicalConjunctionPrecedence | 120 | left | 
|| | LogicalDisjunctionPrecedence | 110 | left | 
| DefaultPrecedence* | none | ||
?...: | TernaryPrecedence | 100 | right | 
=, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^= | AssignmentPrecedence | 90 | right, assignment | 
-> | FunctionArrowPrecedence | right | 
DefaultPrecedence precedence group is higher than TernaryPrecedence, but is unordered with the rest of the operators. Other than this group, the rest of the precedences are linear.