Тур по Swift

Традиционно, рассказ о новом языке начинается с Hello, world!В Swift это делается так:


Если вы писали код в C или Objective-C, этот синтаксис выглядит знакомым — в Swift, эта строка кода является завершенной программой. Не нужно импортировать библиотеку для работы с вводом/выводом или работой со строками. Код, написанный в глобальной области видимости (global scope), используется как входная точка для приложения, поэтому функция main() не нужна. Также не нужно ставить точки с запятой в конце каждого оператора.

В этом туре вы узнаете достаточно информации для того, чтобы начать писать код в Swift — мы решим ряд типичных задач. Не волнуйтесь, если что-то будет непонятно — все, о чем будет рассказано в этом туре, далее в книге будет объяснено еще более подробно.

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

Простые значения

Используйте let для создания констант и var для объявления переменных. Значение константы не обязательно должно быть известно на момент компиляции, но оно должно присваиваться строго один раз. Это значит, что вы можете использовать константу для обозначения значения, определяемого единажды, но используемого во многих местах.

Константа или переменная должна иметь тот е тип, что и значение, которое вы хотите присвоить ей, однако вам не обязательно всегда объявлять тип — компилятор сам может определить тип, если при создании константы или переменной вы указываете ее значение. В приведенном выше примере, компилятор определит, что myVariable — это целое число (integer), т.к. начальное значение — целое число.

Если начальное значение не предоставляет достаточной информации (или его нет), укажите тип вручную:

Попробуйте сами создать константу типа Float со значением 4.

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

Попробуйте удалить конвертацию из String в последнией строке. Какую ошибку вы получите?

Есть еще более простой способ включить значения в строки:

Попробуйте использовать \() для включения дробных чисел в строку и для вставки чьего-нибудь имени в приветствие.

Массивы и словари создаются с помощью [], как и доступ к их элементу (по ключу или по индексу):

Чтобы создать пустой массив или словарь, используйте синтаксис инициализации:

Контроль управления

if и switch используются для условий, for-in, for, while, do-while — для циклов. Скобки вокруг условий опциональны. Фигурные скобки вокруг тела — обязательны.

 

В if выражение должно возвращать Boolean, поэтому код типа if score { … } — это ошибка, никакого неявного сравнения с нулем не будет.

Можно использовать if и let вместе для работы со значениями, которые могут отсутствовать — они представлены, как опциональные значения. Опциональное значение может содержать значение или nil для обозначения того, что значение отсутствует. Для создания «опционального значения» используется знак вопроса:

Измените optionalName на nil. Какое приветствие вы получите? Добавьте else, отображающий другое приветствие для случаев, когда optionalName является nil.

Если опциональное значение равно nil, то условие вернет false и код будет пропущен. Иначе, опциональное значение будет присвоено константе и мы сможем использовать его внутри блока кода.

Switch поддерживает любой вид данных и широкое монжество операторов сравнения — он не ограничен одними лишь целыми числами и сравнениями на равенство:

Попробуйте убрать default случай. Какую ошибку вы получите?

После выполнения кода внутри switch-кейса, который совпал по условию, программа выходит из switch (а не продолжает идти по остальным свитчам, поэтому нет необходимости использовать break).

Можно использовать for-in для итерации по элементам в словаре, указав пару имен для каждого ключа- значения:

Добавьте другую переменную для хранения информации о том, какого типа является самое большое число

While используется для повторения блока кода, пока не измениься условие. Можно перенести условие в конеч и использовать do-while:

Можно хранить индекс в цикле — или используя .. для создания диапазона индексов, или написав явную инициализацию, условие и инкремент.

Следующие два цикла делают одно и то же:

Используйте .. для создания диапазона, не включающего верхнее значение (т.е. цикл идет для i = 0, 1, 2) и … для диапазона, включающего оба значения (т.е. for i in 0…3 — это i = 0, 1, 2, 3).


Просмотренно: 5 361 раз