[cc_swift width=”100%” height=”100%”] // closures /// basic closures let driving = { print(“I’m driving!”) } driving() /// parameters in closures let biking = { (place: String) in print(“I’m going to \(place) on my bike.”) } biking(“Torino”) // no parameter labels in closures /// returning values let pedaling = { (place: String) -> String in return “I’m pedaling to \(place)! Also watch out for this return value.” } let message = pedaling(“Milano”) print(message) /// closures as parameters func travel(action: () -> Void) { //() symbolises the function, Void is no return print(“I’m about to run the closure.”) action() print(“Nicely done.”) } travel(action: driving) /// trailing closure syntax //// when the last parameter we pass to a function is a closure, we can use //// this special type of syntax to simplify things when we CALL it (not when //// we create it! travel { driving() } //// here, we called the function travel, and immediately gave it its only //// parameter, the closure. We can put any code in between those two //// curly brackets and it will be interpreted as the closure parameter. [/cc_swift]

Leave a Reply

Your email address will not be published. Required fields are marked *