Understanding Closures in Swift (Super Beginner-Friendly Guide)
🎯 What is a Closure?
A closure is a small block of code that you can pass around and execute later. It’s like a mini-function that you can save, hand over, and call whenever you need it!
☕ Imagine Ordering at a Cafe
Imagine you go to a cafe and order “A Latte, please!” That order is like a closure — you are giving instructions to the barista (the Swift function) about what you want them to do later.
Swift Code Example
func makeDrink(order: (String) -> Void) {
order("Latte")
}
makeDrink { drinkName in
print("Making a \(drinkName)!")
}
Result ➡️ Making a Latte! will be printed.
🧠 Why Do We Need a Variable Name (like drinkName)?
Inside a closure, you need a variable to catch the value that Swift sends (like “Latte”). Here, drinkName is that catcher!
🤔 Why Are Closures Needed in Swift?
Closures are super useful in Swift because they allow you to:
- Run code later (like when a button is tapped)
- Customize actions for each item (like showing different list items)
- Handle results when a network request finishes
“Whenever you need to choose the timing and behavior flexibly, closures are the answer!”
💻 Real Swift Usage Example
Closure When a Button is Pressed
import SwiftUI
struct ContentView: View {
var body: some View {
Button("Tap Me") {
print("Button was tapped!")
}
}
}
Here, we pass a closure to Button that defines “what to do when tapped”. This is a very real use of closures!
📦 Quick Flow Summary
- Function
makeDrink
accepts a closure - It calls
order("Latte")
inside - The closure catches “Latte” into
drinkName
- Prints “Making a Latte!”
✨ Final Simple Summary
A closure is a block of code you can hand over and run later. Variable names (like drinkName) are needed to catch passed-in values!
Closures make your Swift code flexible and smart by allowing delayed or customized execution!
Leave a Reply