Общие вопросы
Смешанные вопросы по 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 и моделирование ошибок.
Открыть разделПрактика
Как в Swift спроектировать тип ошибки, чтобы вызывающий код надёжно различал причины сбоя без разбора текста сообщения?
Нужно определить результат выполнения кода: какое условие проверяет if case, не анализируя содержимое связанного значения?
import Foundation
enum LoadState {
case loading
case loaded([Int])
case failed(String)
}
let state = LoadState.failed("таймаут")
if case .failed = state {
print("ошибка")
} else {
print("успех")
}
Ситуация: объект гарантированно живёт дольше ссылки, но ссылка не должна удерживать его; к чему приведёт обращение к unowned-ссылке после освобождения объекта?
При обращении к вычисляемому свойству Swift каждый раз выполняет его getter или может использовать ранее полученное значение?
Какое значение представляет variadic-параметр внутри тела функции Swift?
Что мешает Swift вывести конкретный тип для литерала nil без контекста?
Почему класс может реализовать требующий изменения self метод протокола без пометки mutating?
В замыкании Swift что меняет capture list в момент захвата внешних переменных?
Разберите фрагмент: почему Swift принимает присваивание кортежа с одними именами элементов в переменную с другими именами?
let source = (x: 10, y: 20)
let target: (row: Int, column: Int) = source
print(target.row, target.column)
В функции с обязательной проверкой Optional почему успешно извлечённое значение доступно до конца функции после раннего выхода из альтернативной ветви?
Чем отличается область доступности private-члена типа от fileprivate-члена в Swift?
При преобразовании Optional почему flatMap не создаёт вложенный Optional, в отличие от map?
При повторной записи того же значения в наблюдаемое свойство определите порядок и содержание вывода:
struct Temperature {
var celsius: Int {
willSet { print("willSet", newValue) }
didSet { print("didSet", oldValue) }
}
}
var temperature = Temperature(celsius: 20)
temperature.celsius = 20
Объясните, вызываются ли наблюдатели, если значение фактически не изменилось.
Объясните механизм: чем метатип T.self отличается от метатипа, возвращённого функцией type(of:) для значения?
В проекте класс помечен ключевым словом «final»: какое ограничение на наследование гарантирует Swift?
Вам нужно сохранить конкретный тип результата метода клонирования при наследовании. Какую гарантию даёт Self в возвращаемом типе протокольного метода?
protocol Clonable {
func clone() -> Self
}
class Report: Clonable {
let title: String
required init(title: String) {
self.title = title
}
func clone() -> Self {
Self(title: title)
}
}
class AuditReport: Report {}
let copy = AuditReport(title: "A").clone()
print(type(of: copy))
Создаёт ли typealias в Swift новый тип или лишь другое имя существующего?
Вызов с оператором ?? содержит значение слева и выражение справа: когда Swift вычислит правую часть?
При использовании property wrapper в Swift что именно становится хранимым свойством экземпляра?
Объект класса хранит замыкание, которое обращается к этому же объекту: каким образом возникает цикл сильных ссылок и как его разорвать?
Показано 301–320 из 651