Архив метки: swift

Swift: Optional Binding (привязка опционалов)

В попытке подсластить пилюлю нам дали Optional Binding. Это позволяет на лету присвоить в переменную/константу значение опционала и в зависимости от того содержался там nil или нормальное значение выполнить нужную ветку кода

Мы на лету перобразовываем Int? к Int и внутри скобок уже пользуемся constantName как обычным Int, без приведения Ну и в Swift 1.2, нам позволили делать присваивания… Читать далее »

Swift: Optionals (опциональные типы или опционалы)

Главный «pain in ass» — optionals, или как же было просто с nil в Objective-c В Objective-C если у обьекта отсутствовало значение — мы ему просто присваивали nil. Но для тех же структур или enum’ов приходилось использовать спец значения типа NSNotFound чтобы указать что значение отсутствует Swift же позволяет указать отсутствие значения для любого типа, даже базового типа Int. Достигается… Читать далее »

Swift: Tuples (Кортежи)

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

(min: Int, max: Int) — и есть кортеж, состоящий из двух целых чисел Теперь мы можем обратиться к answer.min и answer.max, но это лишь в случае если были указаны имена в определении кортежа, т.е. (min: Int, max: Int) а… Читать далее »

Swift: String interpolation (Интерполяция строк)

При формировании строки допускается интерполяция строк (string interpolation), позволяющая формировать строку используя переменные. В отличии от objective-C переменные вставляются более наглядно. Делается это с помощью конструкции — \(ИмяПеременной) Было

Стало

Также поддерживаются вычисления на месте

Swift: Booleans (Логический тип)

Основное отличие в том, что 1 более не равна true, т.е.

выдаст ошибку, т.к. Bool теперь структура

Swift: Constants and Variables (константы и переменные)

При определении переменных var и констант let тип определяется автоматически, если не указывать явно

Честно говоря мне до сих пор тяжело привыкнуть начинать определение переменной/константы не с типа, а с var/let. Но это дело времени, хотя указанный тип в начале определения переменной на мой взгляд довольно полезен пр беглом просмотре кода.

Swift документация, вводная

Данная статья изначально задумывалась как выборка самых интересных и неявных моментов выявленных во время прочтения официальной книги по Swift от Apple — «The Swift Programming Language«, но в процессе написания все больше приходило понимание, что будет крайне тяжело решить что оставить, а что выкинуть из описания языка. С другой стороны некоторые моменты хотелось дать более развернуто, некоторые исходные коды сделать… Читать далее »