< Previous: Using closures as parameters when they accept parameters | Next: Shorthand parameter names > |
We’ve been using () -> Void
to mean “accepts no parameters and returns nothing”, but you can replace that Void
with any type of data to force the closure to return a value.
To demonstrate this, we can write a travel()
function that accepts a closure as its only parameter, and that closure in turn accepts a string and returns a string:
func travel(action: (String) -> String) {
print("I'm getting ready to go.")
let description = action("London")
print(description)
print("I arrived!")
}
Now when we call travel()
using trailing closure syntax, our closure code is required to accept a string and return a string:
travel { (place: String) -> String in
return "I'm going to \(place) in my car"
}
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.