AI Workshop: learn to build apps with AI →
Swift Basics: Operator Precedence

Join the AI Workshop and learn to build real-world apps with AI. A hands-on, practical program to level up your skills.


This tutorial belongs to the Swift series

Think about this expression:

let amount = 1 + 2 * 3

The value of amount could change drastically depending on whether 1 + 2 is calculated before 2 * 3.

The order of calculation is determined by the operator precedence. From higher to lower precedence, the most common operators are:

  • Multiplication (*), division (/), remainder (%)
  • Add (+), subtract (-)
  • Comparisons (==, !=, <, >, <=, >=)
  • Logical AND (&&) and OR (||)
  • Ternary conditional (?:)
  • Assignment and compound assignment operators (=, += and so on)

This means that the above expression is resolved first calculating the multiplication, and then the sum:

let amount = 1 + 2 * 3 // = 7

The full table of precedence, more complicated, is available at https://developer.apple.com/documentation/swift/swift_standard_library/operator_declarations.

When inside an expression you have multiple operators with the same precedence, we make use of the operator associativity. Associativity is a property we use to determine which operation has priority when the precedence is the same.

For example, consider this:

let amount = 4 / 2 * 5

Depending on whether we first execute 4 / 2 or 2 * 5, the result could be 10 or 0.4.

Associativity solves this. Multiplication is left associative, so we must first execute the expression on the left. Parentheses let you specify the order explicitly:

let amount = (4 / 2) * 5

Multiplication (*), division (/), remainder (%), add (+), subtract (-), logical AND (&&), logical OR (||) are left associative

Assignment and compound assignment operators (=, += and so on) and the ternary conditional (?:) are right associative

Comparisons (==, !=, <, >, <=, >=) don’t have associativity.

Lessons in this unit:

0: Introduction
1: Introduction to Swift
2: Variables and Constants
3: Numbers
4: Booleans
5: Strings
6: Operators
7: ▶︎ Operator Precedence
8: Comments
9: Semicolons
10: How to join the Apple Developer Program
11: Installing iOS and Mac beta releases
12: Introduction to Swift and iOS development for Web developers
13: Some thoughts on SwiftUI
14: Why iOS