Как оператор равенства сравнивает два Optional и от чего зависит возможность такого сравнения?
База Hintsage
Optionals и система типов
Optionals, value/reference semantics, casting и pattern matching.
Практика
Вопросы: Optionals и система типов
В этом фрагменте определите, почему условие с диапазоном совпадает со значением и какой текст напечатает код:
let statusCode = 404
if case 400..<500 = statusCode {
print("ошибка клиента")
} else {
print("другой результат")
}
При наличии двух перегрузок Swift для аргумента типа String — принимающей String и принимающей String? — какая будет вызвана и почему?
Что мешает Swift вывести параметр типа при передаче nil в обобщённую функцию без контекста?
Что именно гарантирует ограничение протокола AnyObject и чего оно не меняет в семантике типа?
За счёт чего optional binding одновременно проверяет nil и меняет тип связанной переменной?
На объект оставили только слабую ссылку. Какое значение напечатает код после выхода из области видимости и почему?
final class Token {}
final class Store {
weak var token: Token?
}
let store = Store()
do {
let token = Token()
store.token = token
print(store.token != nil)
}
print(store.token == nil)
При объявлении функции с возвращаемым типом some Protocol что скрывается от вызывающего кода и чем это отличается от any Protocol?
При передаче значения структуры через inout является ли параметр постоянной ссылкой на исходное хранилище?
На границе вызова функции параметр имеет тип Optional<String>, а передаваемый аргумент — String: каким преобразованием Swift принимает аргумент без явного оборачивания?
В чём механизм восходящего приведения экземпляра подкласса к базовому классу через as и почему оно не может завершиться ошибкой во время выполнения?
Как switch по Optional можно сделать исчерпывающим без default, указав только случаи наличия и отсутствия значения?
Опишите, как pattern matching в конструкции for обрабатывает коллекцию Optional-значений и что попадает в тело цикла.
Какую проблему решает @unknown default в switch по перечислению из библиотеки?
Практическая ситуация: нужно привести гетерогенный массив к массиву целых чисел. Какой результат напечатает код и почему?
let values: [Any] = [1, "2", 3]
let numbers = values as? [Int]
print(numbers == nil)
Как Swift формирует Optional вокруг результата try?, если throwing-выражение уже возвращает Optional?
Что проверяет where после успешного сопоставления шаблона в Swift?
При захвате изменяемой локальной переменной в escaping-замыкании что определяет видит ли замыкание её последующие изменения?
Практическая ситуация: функция получает экземпляр класса и переназначает свой параметр на новый объект. Изменится ли переменная вызывающего кода?
По значению типа Any.Type определите, описывает ли оно класс, а не структуру.
Показано 21–40 из 99