Closures are a very useful part of Swift. An Int is a type that stores an Integer, a String is a type that holds a string. In the same way, a closure is, basically, a type that holds a function. With this capability, you can do many things with closures that you couldn’t do in several older languages. You can assign closures to a variable, you can pass them as arguments to other functions, you can even return one from a function.
In this way, many pieces of literature about Swift say that functions are “first-class citizens” in Swift. I did not know what that phrase meant, so I looked it up and decided to mention it here. This basically refers to something having those capabilities, being able to be assigned to a variable, passed as arguments to functions, and returned from functions. You can read more about it on its Wikipedia page: First-class citizen.
Closures in Swift are similar to blocks in Objective-C. In fact, when you call an Objective-C API from Swift that wants a block, you pass in a closure. The major difference between them is coding style, and that closure expressions are much easier to read and write in Swift.