Od jakiegoś już czasu dostępny jest nowy język programowania Swift, za który odpowiedzialna jest dobrze nam znana firma Apple. Wprowadzono do niego wiele nowych rozwiązań, w tym tajemniczo brzmiące „closures”,  w naszym języku nazywane „domknięciami”.

Domknięcia w języku Swift bardzo podobne są do bloków /blocks/, które używaliśmy w takich językach jak C, Objective C lub też „Lambdas” np: w Ruby. Jednym słowem domknięcia, to mały kawałek kodu, który możemy wielokrotnie wywoływać.

Jedną z ich zalet jest uwolnienie programisty od zarządzania pamięcią w przeciwieństwie, do tego, jak to się ma w języku C.

Szczególnym przypadkiem domknięcia jest popularna… funkcja, która posiada swoją nazwę, co nie jest w każdym przypadku wymagane.

Domknięcie tworzymy pomiędzy nawiasami {} i definiuje typ funkcji () -> (), gdzie -> oddziela argumenty i zwracany typy, a słowo kluczowe in oddziela jej nagłówek od ciała.

A jeśli nie zwraca typu:

prosty przykład:

Możemy przesłać takie domknięcie do innej zmiennej:

Można także odnosić się do parametrów skrótami $0, $1 itd., pomijając początkowe deklaracje:

Bardzo często przekazujemy domknięcia jako parametr dla funkcji sort, map, czy filter,

Jak widzimy z powyższych prostych przykładów koncepcja domknięć w Swifcie pozwoli po oswojeniu się z nią pisać nam elastyczny i dynamiczny kod, łatwy do czytania, a widząc tajemnicze znaczki {() in } wiemy, że nie kryje się za tym żadna czarna magia.