Page 99

17. Swift – Closures


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

Swift is a powerful and instinctive programming language for macOS, iOS, watchOS and tvOS....