0Pricing
Swift Academy · Lesson

Multiple defer Blocks Ordering

Understand reverse execution order of defers.

Multiple defers

A scope can contain several defer blocks. They all run at scope exit.

func demo() {
    defer { print("A") }
    defer { print("B") }
    print("body")
}
demo()

Reverse (LIFO) Order

Deferred blocks run in reverse order of declaration: last declared runs first.

func order() {
    defer { print("1") }
    defer { print("2") }
    defer { print("3") }
    print("start")
}
order()

All lessons in this course

  1. How defer Works
  2. Multiple defer Blocks Ordering
  3. defer for Resource Cleanup
  4. defer with Errors and Early Returns
← Back to Swift Academy