Замыкания - это автономные блоки функциональности, которые можно передавать и использовать в вашем коде. Замыкания в Swift похожи на блоки в C и Objective-C и на лямбды в других языках программирования.
Замыкания могут захватывать и хранить ссылки на любые константы и переменные из контекста, в котором они определены. Это называется закрытием этих констант и переменных. Swift обрабатывает все функции захвата памяти для вас.
Ссылка: нажмите здесь
Пример:
Для сортировки вы можете определить простую функцию и передать ее в качестве аргумента методу sorted(by:)
:
let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
func backward(_ s1: String, _ s2: String) -> Bool {
return s1 > s2
}
var reversedNames = names.sorted(by: backward)
// reversedNames is equal to ["Ewa", "Daniella", "Chris", "Barry", "Alex"]
Вместо использования функции вы можете написать замыкание для этого, как:
var reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in
return s1 > s2
})
Решение вашей проблемы:
Либо ты пишешь и пользуешься:
func closure(number1: Int, number2: Int) {
return number1 + number2
}
let res = closure(number1: number1, number2: number2)
Или вы можете реализовать:
let closure:((Int, Int) -> Int) = { (number1, number2) in return number1 + number2 }
let res = closure(number1: number1, number2: number2)