Closures in Swift

From the Swift cheat sheet · Functions & Closures · verified Jul 2026

Closures

Anonymous functions and capturing

swift
// Closure syntax
let simpleClosure = { print("Hello") }
let withParams = { (name: String) in
    print("Hello, \(name)")
}

// Closure with return value
let add: (Int, Int) -> Int = { (a, b) in
    return a + b
}

// Trailing closure syntax
let numbers = [1, 2, 3, 4, 5]
let doubled = numbers.map { $0 * 2 }

// Multiple trailing closures
func loadData(
    onSuccess: () -> Void,
    onFailure: () -> Void
) { }

loadData {
    print("Success")
} onFailure: {
    print("Failed")
}
💡 Trailing closure syntax improves readability
⚡ @escaping is required when closure outlives function
📌 Closures capture values by reference by default
🟢 Swift provides progressive syntax shortcuts for closures

Continue with Swift

Save the full cheat sheet or work through every related task.

More Swift tasks

Back to the full Swift cheat sheet