Block Functionality
A block is an anonymous inline collection of code that:
-
Has a typed argument list just like a function
-
Has an inferred or declared return type
-
Can capture state from the lexical scope within which it is defined
-
Can optionally modify the state of the lexical scope
-
Can share the potential for modification with other blocks defined within the same lexical scope
-
Can continue to share and modify state defined within the lexical scope (the stack frame) after the lexical scope (the stack frame) has been destroyed
Swift's anonymous functions are called Closures.
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Blocks/Articles/bxOverview.html#//apple_ref/doc/uid/TP40007502-CH3-SW1