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

More Swift tasks

Back to the full Swift cheat sheet