Summary
In this chapter, we saw that we can define a closure just like we can define an int or string type. We can assign closures to a variable, pass them as an argument to functions, and also return them from functions.
Closures capture a store references to any constants or variables from the context in which the closure was defined. We do have to be careful with this functionality to make sure that we do not create a strong reference cycle, which would lead to memory leaks in our applications.
Swift closures are very similar to blocks in Objective-C, but they have a much cleaner and more eloquent syntax. This makes them a lot easier to use and understand.
Having a good understanding of closures is vital to mastering the Swift programming language and will make it easier to develop great applications that are easy to maintain for OS X and iOS. It is also essential for creating first class frameworks that can be used to create OS X and iOS applications.
The three use cases that we saw in this...