Closures:
1) Closure is a variable , its stores the function and we can closure as a any other variable and pass parameter or argument to the any function
Closures are mainly used for two reasons:
Completion blocks:
Closures help you to be notified when some task has finished its execution. See Closure as a completion handler to learn more about it.
Higher order functions:
Closures can be passed as an input parameters for higher order functions.
A higher order function is just a type of function that accepts function as an input and returns value of type function as output.