Функции.

Это перевод статьи- эпизода “Functions”, размещенной на сайте pointfree.co.
Код для этого фрагмента можно найти здесь.

Давайте определим инкрементную функцию incr, которая берет целое число Int, добавляет к нему единицу и возвращает результат как целое число Int:

func incr (_ x:Int) -> Int {
return x + 1
}

При вызове мы передаем этой функции значение.

incr(3) // 4

Давайте определим функцию square, которая возводит в квадрат целое число Int:

func square(_ x:Int) -> Int {
return x * x
}

Мы можем вызвать эту функцию тем же самым способом:

square(3) // 9

Мы можем даже сделать вложенный вызов этих функций для того, чтобы сначала рассчитать приращение, а затем квадрат целого значения Int:

square(incr(3)) // 16

Это очень просто, но это не характерно для Swift. Самый высокий уровень, свободные функции (free functions), не используются для такого рода функций, в этом случае отдается предпочтение методам.

Continue reading