Created
December 27, 2016 20:46
-
-
Save ChenCodes/3c755b5b9bb024c7126c9e86c021cc6f to your computer and use it in GitHub Desktop.
Closures in Swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var noParametersOrReturn: () -> () = { | |
print("I have no parameters or return values, so I print" | |
} | |
// noParametersOrReturn() | |
var noParameterAndOneReturn: () -> String = { | |
return "I am a string" | |
} | |
var oneParameterAndReturn: (String) -> String = { name -> String in | |
return "My name is " + name | |
} | |
var multipleParametersAndOneReturn: (String, String) -> String = { (firstname, lastname) -> String in | |
return firstname + lastname | |
} | |
//Inferred type closures | |
var oneParameterAndMultipleReturns_I = { (array: [Int]) -> (evens: [Int], odd: [Int]) in | |
var evens = [Int]() | |
var odd = [Int]() | |
for element in array { | |
element % 2 == 0 ? evens.append(element) : odd.append(element) | |
} | |
return (evens, odd) | |
} | |
oneParameterAndMultipleReturns_I([1, 2, 3, 4, 5, 6, 7, 8, 9]).evens | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment