Swift version: 5.6
Closures and functions are very similar in Swift, but there are some subtle differences. When you’re learning, it’s easiest to think of a closure as being a function that doesn’t have a name of its own, and captures any values from its environment.
Nested functions – functions inside other functions – also capture values from their environment, but they have a name. As for global functions – functions that aren’t inside another function or type – they are also like closures, except they have a name and don’t capture values from their environment. Like I said, the differences are subtle!
Helpfully, Swift completely blurs the lines between functions, methods, operators, and closures, allowing us to use them interchangeably as long as they accept and return the correct types of data.
SPONSORED Play is the first native iOS design tool created for designers and engineers. You can install Play for iOS and iPad today and sign up to check out the Beta of our macOS app with SwiftUI code export. We're also hiring engineers!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.