17. Swift – Closures
Swift
Closures in Swift are similar to that of self-contained functions organized as blocks and called anywhere like C and Objective C languages. Constants and variable references defined inside the functions are captured and stored in closures. Functions are considered as special cases of closures and it takes the following three forms: Global Functions
Nested Functions
Closure Expressions
Have a name. Do not capture any values
Have a name. Capture values from enclosing function
Unnamed Closures capture values from the adjacent blocks
Closure expressions in Swift language follow crisp, optimization, and lightweight syntax styles which includes.
Inferring parameter and return value types from context.
Implicit returns from single-expression closures.
Shorthand argument names and
Trailing closure syntax
Syntax Following is a generic syntax to define closure which accepts parameters and returns a data type: {(parameters) -> return type in statements } Following is a simple example: let studname = { println("Welcome to Swift Closures") } studname() When we run the above program using playground, we get the following result: Welcome to Swift Closures The following closure accepts two parameters and returns a Bool value: {(Int, Int) -> Bool in Statement1 87