Общие вопросы
Смешанные вопросы по Swift.
Открыть разделБаза Hintsage
Язык Swift и разработка приложений в экосистеме Apple.
Темы раздела
Смешанные вопросы по Swift.
Открыть разделТипы, функции, структуры, классы и базовая семантика.
Открыть разделOptionals, value/reference semantics, casting и pattern matching.
Открыть разделProtocols, extensions, associated types и generic constraints.
Открыть разделCollections, closures, map/filter/reduce и sequences.
Открыть разделARC, reference cycles, weak/unowned и время жизни объектов.
Открыть разделasync/await, actors, tasks и безопасность данных.
Открыть разделthrows, Result, defer и моделирование ошибок.
Открыть разделПрактика
В практической ситуации копируют структуру, содержащую ссылочное поле, затем меняют объект через одну копию: какое поведение нужно ожидать и почему?
Разберите ошибку: метод структуры изменяет её свойство, но компилятор требует пометить метод как mutating. Что именно означает это требование?
Сравните последствия привязки экземпляра структуры и экземпляра класса к константе в Swift: что именно становится неизменяемым?
Что именно происходит с аргументом при передаче в функцию через параметр inout?
Объясните механизм: зачем Swift помечает замыкание как escaping, если оно может быть вызвано после возврата функции?
Представьте, что функции передали экземпляр класса: почему изменение его свойства видно снаружи, а переназначение локальной ссылки на другой экземпляр — нет?
Как Swift выбирает перегруженную функцию, если значение во время выполнения имеет более конкретный тип, чем статический тип переменной?
В каком случае присваивание экземпляра структуры новой переменной не приводит к немедленной физической копии его данных?
При вызове переопределённого метода через ссылку на базовый класс какой реализацией завершится вызов?
В чём смысл требования Swift инициализировать собственные хранимые свойства подкласса до вызова super.init?
В практической ситуации вызов метода выполняется через необязательный экземпляр: каким станет результат, если экземпляр содержит значение или равен nil?
Предскажите вывод программы и объясните, какое состояние разделяют копии замыкания:
func makeCounter() -> () -> Int {
var value = 0
return {
value += 1
return value
}
}
let first = makeCounter()
print(first())
let second = first
print(second())
print(first())
Каким образом ARC определяет момент освобождения экземпляра класса, если ссылки на него исчезают в разном порядке?
Что произойдёт с willSet и didSet хранимого свойства при присваивании ему начального значения внутри инициализатора?
При проверке двух экземпляров класса какой механизм позволяет установить, указывают ли ссылки на один и тот же объект, независимо от содержимого его свойств?
Разберите ситуацию: инициализатор структуры присваивает значения хранимым свойствам только в одной из ветвей условия. Какое требование Swift нарушено и почему компилятор отклоняет такой инициализатор?
Функция содержит несколько defer в одном и вложенных блоках: как Swift определяет порядок их выполнения при выходе из области видимости?
Что означает lazy для хранимого свойства Swift при первом обращении?
Когда Swift вычисляет значение параметра по умолчанию при вызове функции?
Почему Swift не позволяет напрямую сравнить два значения, объявленные как any Equatable, хотя каждый конкретный тип поддерживает Equatable?
Показано 1–20 из 651