swift

Всем привет. Я решил сделать серию постов с вызывающим названием “Swift за 24 часа”. Это не образовательная программа для начинающих. Скорее это шпаргалка для тех, кто уже имеет солидный опыт разработки для Mac и iOS на старом добром Objective-C и хочет быстро, очень быстро, освоить Swift и начать писать проекты на этом прекрасном языке.

Swift за 24 часа – Введение

Итак. Swift – это новый язык программирования для разработки iOS и OS X приложений, который сочетает в себе все лучшее от C и Objective-C, но лишен ограничений, накладываемых в угоду совместимости с C. Swift представляет свои собственные версии всех основных C и Objective-C типов, включая Int для целых, Double и Float для значений с плавающей точкой, Bool для логических значений, и String для текстовых данных. Swift также представляет мощные версии трех основных типов коллекций – Array, Set и Dictionary.

Также как C Swift использует переменные и константы для работы и хранения значений.

В дополнение к стандартным типам Swift предлагает продвинутый тип ранее не существовавший в Objective-C, под названием tuple (тапл), в переводе на русский “кортеж”. Тапл позволяет создавать и передавать группы значений. Можно использовать тапл для возврата из функции нескольких значений под одним именем.

Swift также представляет опциональные типы, которые позволяют обрабатывать ситуации, когда нет значения. Это похоже на nil в Objective-C, который может быть применим абсолютно к любым типам, не только к указателям.

Swift – это типо-безопасный язык программирования. Если часть вашего кода ожидает тип String, Swift предотвратить передачу Int по ошибке.

Swift –  мощный язык программирования, такой же понятный и увлекательный, как скриптовый язык. Он поддерживает так называемые playground-ы, которые позволяют программистам экспериментировать с кодом, видя результат в режиме реального времени без необходимости компилировать и запускать приложение.

Swift вобрал в себя все лучшее от современных языков и разработан с учетом обширного опыта компании Apple. Swift – это новый фантастический способ создавать приложения для iOS и OS X, и Apple продолжает развивать его, добавляя новый функционал и представляя новые возможности.

Я же со своей стороны предлагаю всем вам, дорогие читатели, амбициозную цель – Изучить Swift за 24 часа.

Удачи!

Константы и переменные

Объявление констант и переменных

Для того, чтобы объявить константу используем ключевое слово let, для того, чтобы объявить переменную используем ключевое слово var

Можно декларировать несколько переменных в одну линию через запятую

Apple выделяет следующее правило

Если вы не собираетесь менять значение в коде, всегда декларируйте его как константу используя ключевое слово let. Используйте переменные только для значений, которые будут меняться.

Аннотация типов

Прежде чем перейти далее следует отметить правило, которое Apple выделило особо

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

Например, если вы объявите переменные как

Swift автоматически определит тип age как Int, a name как Sting

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

Можно объявлять сразу несколько констант или переменных одной строкой через запятую

Именование констант и переменных

Имена констант и переменных могут содержать практически все символы, включая Unicode

за исключением пробелов, математических символов, стрелок, private-used Unicide points или символов для рисования. Не могут начинаться с числа, но содержать числа могут.

Как только вы объявили переменную или константу, вы не можете ее переобъявить с тем же именем или изменить ее тип.

Ну и естественно, вы можете менять значения переменных и не можете менять значения констант.

Вывод констант и переменных

Чтобы вывести в консоль значение константы или переменной используем функцию print(_:separator:terminator:)

В результате в консоль будет напечатана строка “Hello World\n”

В Swift есть такая классная вещь как интерполяция строк.

Вспомним Objective-C

В Swift аналогичный вывод будет выглядеть так

Прекрасно, не правда ли.

Комментарии

Комментарии остались без изменений.

Точка с запятой

В Swift не надо ставить точку с запятой в конце каждой строки кода!

Целые

Swift предоставляет знаковые и беззнаковые целые в 8, 16, 32 и 64 битной форме. Именование подобно С. Так 8-битовое беззнаковое – UInt8, 32-битовое знаковое – Int32.

Границы целых

Можно получить доступ к минимальному и максимальному значению каждого целочисленного типа через min и max свойства.

Int

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

  • On a 32-bit platform, Int is the same size as Int32.
  • On a 64-bit platform, Int is the same size as Int64.
До тех пор пока вам не требуется специальный размер целого, всегда используйте Int для целых значений в вашем коде. Даже на 32-bit платформах, Int может хранить значения между -2,147,483,648 и 2,147,483,647, и это в большинстве случаев достаточно для множества целочисленных диапазонов.

UInt

UInt – беззнаковый целый тип.

  • On a 32-bit platform, UInt is the same size as UInt32.
  • On a 64-bit platform, UInt is the same size as UInt64.
Apple рекомендует использовать UInt для особых нужд “Use UInt only when you specifically need an unsigned integer type with the same size as the platform’s native word size.” Если такой необходимости нет Int вседа предпочтительней, даже если вы знаете, что значения не будут принимать отрицательную форму.

Значения с плавающей точкой

  • Double представляет 64-bit floating-point number.
  • Float представляет a 32-bit floating-point number.
Double имеет как минимум 15 знаков после запятой, в то время как Float имеет 6 знаков после запятой.

Типо-безопасность и типо-определение

Swift – типо-безопасный язык программирования. Если часть вашего кода ожидает тип String, Swift предотвратить передачу Int по ошибке.

Swift выполняет проверку типов на этапе компиляции. Это позволяет вам отлавливать ошибки настолько рано насколько это возможно.

Типо-определение в частности применяется когда вы объявляете переменную или константу и задаете ей значение. Swift определит тип по значению

Значения с плавающей точкой по умолчанию будут Double

Числовые литералы

Целый литерал может быть записаны как:

  • Десятичное, без префикса
  • Двоичное, с 0b префиксом
  • Восьмиричное, с 0o префиксом
  • Шестнадцатиричное, с 0x префиксом
Также Swift позволяет применять следующие формы записи

Преобразование типов

Целочисленные преобразования

Преобразования целых и значений с плавающей точкой

Преобразования типов между целыми значениями и значениями с плавающей точкой должны быть четкими

Правила для объединения числовых констант и переменных отличаются от правил для числовых литералов. Буквальное значение 3 может быть добавлено непосредственно к буквальному значению 0.14159, поскольку числовые литералы не имеют явного типа. Их тип выводится только в том месте, что они оцениваются компилятором.

Алиас типов typealias

Вы можете придумать типу любой алиас, например

Как только вы определили алиас типа, вы можете использовать его где угодно

Логический тип

Swift имеет базовый Boolean тип, называемый Bool. Boolean значения называются логическим, потому что они могут быть только true или false. Swift представляет два Boolean значения, true and false:

Вам не нужно декларировать тип Bool, если вы присвоили переменной или константе значение true или false.

Логические значения практически применимы когда вы работаете с условными операторами

Типо-безопасность в Swift предотвратит использование не Bool в том месте, где должен быть Bool. Следующий пример кода выдаст ошибку

В то же время альтернативный вариант сработает

Поздравляю! Мы закончили 1ый час из 24 на изучение Swift. Рекомендую закрепить данный материал потренировавшись в плейграунде.

Продолжение следует…