Введение в замыкания в программировании на Swift

«Замыкания — это автономные блоки функций, которые можно передавать и использовать в вашем коде». — Согласно документации Apple.

Введение

Поначалу Clousers может показаться сложным, но это простая концепция, и как только вы поймете, вам будет несложно ее использовать. Прежде чем понимать замыкания, нужно уже знать концепцию функций в программировании. Замыкания — очень привлекательная концепция в разработке IOS, и вы будете часто использовать ее при разработке приложений. 👨‍💻 Замыкания называются безголовыми функциями? Это правда, и я имею в виду это, давайте посмотрим, почему?

Начнем с примера функций

func additionFunction(number1:Int , number2:Int) -> Int {
    let sum:Int = number1 + number2 
    return sum
}
var addition = additionFunction(number1: 12, number2: 13)

Приведенная выше простая функция сложения принимает два параметра number1 и number2 и возвращает сумму двух переменных.

Давайте посмотрим на тот же пример с замыканием

var addition : (Int, Int) -> Int = {(number1,number2) in
    return number1 + number2
}
addition(12, 12)

мы объявили переменную с именем add; упомянутые типы данных переменных (Int, Int) указывают, что более близкий с принимает два аргумента типа Int и Int и -> Int описывает, что замыкание вернет значение типа Int.
Здесь мы использовали скобки {} точно так же, как функции и (число1, число2), которые являются именами аргументов.

Сокращенные замыкания.

Есть еще один способ написать замыкание без написания имен аргументов, таких как число1 и число2, используя позицию $0, $1. так что давайте посмотрим, как это делается.

var addition : (Int, Int) = { in 
  return $0 + $1
}

В этом случае мы не используем никакого имени аргумента, но мы используем $0, который относится к первому аргументу, переданному замыканию, а $1 относится ко второму аргументу, переданному замыканию. Это гораздо более короткая и чистая версия.

Спасибо за чтение этого блога, я надеюсь, что вы узнали что-то новое и интересное сегодня.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *