Профессиональная программа «iOS Разработчик» — 5 месяцев Best Practice по разработке мобильных приложений с помощью Swift 5. Лучших выпускников ждут на собеседованиях 12 компаний-партнёров OTUS, поэтому публикуем перевод заключительной статьи из серии «iOS Interview Questions (Swift)», где рассмотрим ещё десяток вопросов, ответы на которые помогут вам при трудоустройстве.
Перейдите по ссылке, чтобы увидеть все варианты синтаксиса замыканий.
@nonescaping (стандартные) замыкания:
@escaping (убегающие) замыкания:
В Swift классы, которые не наследуются от базового класса, и классы, которые вы определяете без указания суперкласса, автоматически становятся базовыми классами.
Деинициализатор объявляется непосредственно перед освобождением памяти, занимаемой экземпляром класса. Деинициализатор пишется с ключевым словом deinit. Он используется, если нужно выполнить какие-либо действия или чистку перед освобождением памяти, занимаемой объектом.
Например, если вы создаете пользовательский класс, чтобы открыть файл и записать в него некоторые данные, вам нужно будет закрыть файл до освобождения памяти, занимаемой экземпляром класса.
Деинициализатор записывается без скобок и не принимает никаких параметров.
deinit {
// выполняем деинициализацию
}
Этот оператор называется оператором nil-объединения. Он используется для того, чтобы задать значение по умолчанию, если опционал равен nil.
let a: String? = nil
let b = "nil coalescing operator"
let result = a ?? b
print(result) //вывод:"nil coalescing operator"
Символ "?"
Символ "!"
Объявление псевдонима типа вводит именованный псевдоним существующего типа в программу. Объявления псевдонимов типов объявляются с помощью ключевого слова typealias.
typealias name = existing type
typealias StudentName = String
let name:StudentName = "Jack"
Вы можете использовать typealias для большинства типов в Swift, например:
Метод — это функция, связанная с классом, структурой или перечислением. Это относится как к методам экземпляров, так и к методам типов.
Функция — объявлена в глобальной области видимости и не относится ни к какому типу.
Функции могут быть определены вне классов или внутри классов/структур/перечислений, в то время как методы должны быть определены внутри и быть частью классов/структур/перечислений.
Внешний параметр позволяет нам давать имена параметрам функции, чтобы сделать их назначение более понятным.
func power(base a: Int, exponent b: Int) -> Int
*Иногда бывает полезно назвать каждый параметр при вызове функции, чтобы указать назначение каждого аргумента, который передается функции.
Если вы хотите, чтобы пользователи вашей функции указывали имена параметров при ее вызове, определите имя внешнего параметра для каждого параметра в дополнение к имени локального параметра.*
Нельзя создать подкласс структуры или перечисления, как и переопределить их. Потому что структура является типом значения, и компилятор должен знать ее точный размер во время компиляции, что переопределение делает невозможным.
Чтобы найти предыдущие части, переходите по ссылкам Часть 1, Часть 2, Все о замыканиях, Все о свойствах
Вот и всё! Уверены, переводы пригодятся не только студентам курса «iOS Разработчик», а также многим пользователям Хабра. Желаем всем профессиональных успехов и ждём в ближайших группах наших авторских онлайн-программ!
К сожалению, не доступен сервер mySQL