Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое Optional в Swift? Как его создать?
Optional — это тип, который может содержать либо значение, либо nil (отсутствие значения). Он предотвращает аварийное завершение программы при работе с отсутствующими значениями. Создать Optional можно, добавив ? после типа переменной.
Что такое необязательная цепочка (Optional Chaining)?
Необязательная цепочка (optional chaining) позволяет безопасно вызывать методы, свойства или обращаться к элементам коллекции, которые могут быть nil, не вызывая ошибки. Если на любом этапе цепочки встречается nil, весь результат возвращается как nil.
Что такое опциональное связывание (optional binding)?
Опциональное связывание в Swift используется для безопасной проверки и извлечения значений из опциональных переменных. Если переменная имеет значение, оно временно присваивается новой константе или переменной для дальнейшего использования. Например:
var name: String? = "Charles"
if let realName = name {
print(realName) // Output: Charles
}Можно ли создать кастомный аналог Optional? Как работает вложенность опционалов (например, Int???)?
Да, Optional — это enum Optional<Wrapped> { case none; case some(Wrapped) }, и вы можете определить аналог. Вложенные опционалы автоматически «схлопываются»: Int??? при развёртке одинарным ! даёт Int??, и так далее, пока не окажется Int или nil.
Как обрабатывать Optional вместо проверок на null?
Optional — это контейнер для значения, которое может быть null. Он предоставляет методы для безопасной обработки (isPresent(), orElse(), ifPresent()), избегая явных проверок на null.
Что такое опциональная цепочка в JS?
Почему weak является optional, а unowned — нет?
Что такое Optional и для чего он используется?
Рейтинг:
1
Сложность:
6
Опциональная цепочка (?.) — это оператор в JavaScript, который позволяет безопасно обращаться к свойствам вложенных объектов без проверки существования каждого уровня. Если какое-либо свойство в цепочке равно null или undefined, выражение возвращает undefined вместо ошибки. Это упрощает код и делает его более читаемым.
Рейтинг:
4
Сложность:
6
weak ссылка может стать nil, если объект был освобожден. Поэтому она обязана быть optional. unowned предполагает, что объект всегда существует в момент обращения. Если объект будет освобожден раньше, приложение упадет. Это принципиальная разница в контракте использования.
Рейтинг:
5
Сложность:
4
Optional — это контейнер, который может содержать значение или быть пустым. Он используется для явного обозначения того, что результат может отсутствовать. Optional помогает избежать NullPointerException и делает API более понятным. Чаще всего он применяется как возвращаемое значение метода. Использовать его для полей и параметров не рекомендуется.
Рейтинг:
2
Сложность:
4
Рейтинг:
2
Сложность:
4
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
6