Skip to content

Instantly share code, notes, and snippets.

@ChenCodes
Created December 27, 2016 20:46
Show Gist options
  • Save ChenCodes/3c755b5b9bb024c7126c9e86c021cc6f to your computer and use it in GitHub Desktop.
Save ChenCodes/3c755b5b9bb024c7126c9e86c021cc6f to your computer and use it in GitHub Desktop.
Closures in Swift
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