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

Swift: Inheritance – наследование

Синтаксис вполне привычен, при определении типа после имени через двоеточие указать тип от которого новый тип был унаследован. Можно переопределять методы, свойства и индексы как экземпляров так и типов с помощью ключевого слова override Вызов базового метода (свойства, индекса) из наследника можно с помощью ключевого слова super

Так же можно добавить наблюдателя к хранимым свойствам (var, не let), и… Читать далее »

Swift: Subscripts – индексы

Синтаксис вызова: ИмяПеременной[index] По сути – сокращения для удобства доступа к элементам массивов, коллекций, могут быть реализованы для структур, классов и перечислений Практическое применение было рассмотрено в пункте String (Строки) Определяются с помощью ключевого слова subscript

set можно не определять, тогда будет только для чтения Индексы могут принимать произвольное число аргументов любого типа, variable parameter, variadic parameter Индексы не… Читать далее »

Swift: Methods (Методы)

Методы – это функции прикрепленные к типу (как ссылочному типу так и значимому типу) или его экземпляру и имеющие доступ к его переменным По сути все было описано в разделе Functions (Функции) Как я уже говорил есть доступ к переменным, вызываются методы по точке

Система именования методов в Swift обычно подразумевает, что имя метода заканчивается на By, With, For,… Читать далее »

Swift: Properties – свойства

Свойства – переменные ассоциированные с классом, структурой или перечислением. Они бывают нескольких видов: Stored Properties – хранимые свойства: Обычные свойства, могут быть как изменяемыми var, так и константами let

Но если бы мы определили экземпляр структуры как константу а не переменную, мы не смогли бы изменить даже свойство которое объявлено как переменная, т.к. структура – значимого типа и изменение… Читать далее »

Swift: Structure and Class (Структура и класс)

Структуры и классы – это конструкции позволяющие инкапсулировать в себе как переменные так и методы, выполняющие действия над ними. Структуры и классы очень схожи по синтаксису и возможностям Уникальные возможности классов: – наследование – приведение типов (type casting) – деинициализатор – классы – ссылочного типа (reference type), а структуры – значимого типа (value type) Пример синтаксиса

Создаем просто

Читать далее »

Swift 2.0: Optional Pattern (Паттерн опционала)

Паттерн опционала приводит значения хранящиеся в Some(T) случае перечислений Optional/ImplicitlyUnwrappedOptional к нормальному типу.

Что является упрощенной формой от Enumeration Case Pattern

Swift 2.0: Enumeration Case Pattern (Паттерн выбора перечисления)

В Swift 2.0 расширили применение паттерна Enumeration Case не только на switch, но и на if, while, guard и for-in

Раньше нужно было делать полноценную проверку

теперь достаточно сделать так

в циклах так же такое доступно

Так же можно использовать при работе с опционалами

Swift: Enumerations (Перечисления)

Перечисление – тип, позволяющий хранить группу связанных значений и позволяющих работать с ними в типобезопасном режиме. Рассмотрим классический пример перечисления

Apple теперь по умолчанию не равен 0, если мы хотим получить доступ к такому варианту – нужно воспользоваться RawValue. Сделать это можно указав тип через двоеточие после имени перечисления при определении.

Так же можно указать любой тип, не… Читать далее »

Swift: Closures (Замыкания)

Замыкания подобны блокам в Objective-C Так называются блоки функциональности, захватывающие переменные из контекста Синтаксис: { (parameters) -> returnType in …//код } По большому счету это обрамленный в фигурные скобки тип функции + оператор in + тело функции Бывает три разновидности замыканий – глобальные функции – замыкание имеющее имя, и не захватывающее никаких значений – вложенные функции, – замыкание имеющее имя… Читать далее »

Swift: Functions (Функции)

В общем виде: func имяФункции(список переменных) -> Тип возвращаемого значения Пример:

Этот пример интересен тем, что функция возвращает optional tuple (опциональный кортеж), что позволяет вызвать эту функцию и работать с возвращаемым значением, либо корректно обработать отсутствие результата

В консоль выведется: result Поговорим о правиле вызова функции. Swift 1.2 При вызове функции мы не можем указывать внутренне имя аргумента… Читать далее »