При присваивании Optional, содержащего экземпляр класса, другой переменной копируется объект или ссылка?
База Hintsage
Optionals и система типов
Optionals, value/reference semantics, casting и pattern matching.
Практика
Вопросы: Optionals и система типов
Какой уровень Optional связывает шаблон с постфиксом вопросительного знака при сопоставлении вложенного Optional?
Какое последствие имеет замена условительного приведения типа на принудительное в Swift?
Разберите, почему изменение структуры после присваивания не меняет исходное значение в Swift.
Как при сопоставлении значения с типовым шаблоном определяется статический тип связанной переменной?
Что происходит с nil-значением Optional при передаче в Any?
В функции, преобразующей Optional в другой Optional, чем практически отличается применение map от flatMap?
В практической ситуации две переменные используют один большой массив Swift, после чего одна из них изменяется: как Copy-on-Write сохраняет value semantics без немедленного копирования данных?
Представьте, что ссылка на экземпляр класса объявлена через let: за счёт чего состояние объекта всё ещё можно изменить?
В switch Swift какой из совпавших шаблонов определяет результат: более специфичный или записанный раньше?
Объясните механизм, из-за которого копирование структуры со ссылочным свойством не делает состояние объекта независимым.
В практической ситуации нужно безопасно получить город пользователя, когда сам пользователь или его адрес может отсутствовать. Определите тип и значение city, не запуская код:
struct Address {
let city: String
}
struct User {
let address: Address?
}
let user: User? = User(address: nil)
let city = user?.address?.city
print(city as Any)
Объясните, как optional chaining влияет на результат.
Что произойдёт при попытке использовать Optional как логическое условие в Swift без явного извлечения?
Объясните механизм: почему значение типа any протокола с associatedtype нельзя использовать через имя его ассоциированного типа?
Разберите вызов изменяющего метода через existential-значение. Какое число напечатает код и почему изменение сохраняется?
Как шаблон перечисления проверяет case и извлекает его связанное значение?
Как в Swift отличить совпадение состояния двух экземпляров класса от того, что это один и тот же объект?
Вызов функции получает значение nil. Определите, на какой операции завершится выполнение и почему:
func greet(_ name: String) -> String {
"Привет, \(name)!"
}
let name: String! = nil
let message = greet(name)
print(message)
При проверке оператором is значения, объявленного базовым классом, что определяет результат: статический тип переменной или динамический тип объекта?
При успешном условительном приведении объекта к типу протокола какой тип получает связанная переменная и что при этом происходит с конкретным типом объекта?
Показано 1–20 из 99