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