Функции в Swift

Функции в Swift

Ознакомившись с переменными, настало время научиться писать свои методы и функции в Swift. Для этого откроем наш плейграунд, в котором мы работали в предыдущем уроки, и приступим.

По-традиции, на мгновение окунёмся в теорию и посмотрим как Wikipedia описывает методы и функции:

Фу́нкция — фрагмент программного кода (подпрограмма), к которому можно обратиться из другого места программы. В большинстве случаев с функцией связывается идентификатор, но многие языки допускают и безымянные функции.

Ме́тод — это функция или процедура, принадлежащая какому-то классу или объекту.

По сути, методы и функции — это одно и тоже. Разница заключается лишь в том, к какому объекту они принадлежат и где были объявлены.

Функции

Для объявления функции используется оператор func. Шаблон создания функции выглядит следующим образом:

Функции в Swift

Объявление функции в Swift

На примере кода, функция выглядит следующим образом:

Здесь мы объявили функцию под именем sayHello, которая принимает в качестве аргумента (параметра) строковую переменную name и ничего не возвращает в ответ (Void). В теле функции мы использовали уже знакомую нам функцию print. Попробуем использовать то что мы написали, добавив следующий код:

Вот так всё просто — достаточно сослаться на имя функции и указать необходимые параметры.

Ранее мы уже использовали функции и методы в наших уроках, просто не акцентировали внимание на них.

Если Вам нужно получить что-либо в результате работы функции в Swift, достаточно заменить return type с Void на необходимый класс. Рассмотрим следующий пример:

В качестве возвращаемого аргумента можно использовать абсолютно любой тип данных: числовые и строковые переменные, классы и др.

В качестве эксперимента самостоятельно напишите еще 3 функции: вычитание, деление и умножение.

Естественно, что далеко не все функции в Swift являются столь простыми. Поэтому мы можем создавать любое количество переменных внутри тела функции, а также вызывать любое количество других функций из тела первой.

Рассмотрим более сложный пример — создадим 2 функции. Одна будет печатать переданное ей значение в лог, а с помощью второй мы будем рассчитывать площадь круга по формуле «S = π * r2«.  При этом, мы создадим переменную внутри второй функции и будем вызывать первую функцию при необходимости:

Внимание! У каждой переменной имеется своя область видимости. К примеру, Вы не сможете манипулировать переменной square вне функции calculateCircleSquare, так как она объявлена внутри её тела и может быть доступна только оттуда.

Функции — тип первого класса. Это означает, что функция может возвращать другую функцию в качестве значения. Посмотрите пример из книги Apple:

Как мы можем здесь видеть, внутри функции makeIncrementer объявляется новая — addOne, которая и возвращается в качестве значения. Тем самым переменная increment по-умолчанию стала функцией. Соответсвенно, если Вы захотите передать какой-нибудь аргумент в makeIncrementer, то сможете без проблем использовать его внутри addOne.

Мы осмотрели основные возможности как создаются и используются функции в Swift и теперь готовы двигаться дальше. Для того чтобы укрепить знания, мы советуем Вам написать самостоятельно несколько функций различных сложностей самостоятельно.

Подписывайтесь на обновления, следите за новыми уроками!