SW Swift  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Optional chaining и функциональные преобразования

Разбирает тему «Optional chaining и функциональные преобразования» на практических сценариях: поиск дефектов, сравнение решений и оценка последствий. Вопросы требуют не только узнать конструкцию, но и проследить выполнение, найти причину дефекта, выбрать исправление и оценить пограничный сценарий. Языковые примеры рассчитаны на Swift 6; задания с Apple SDK рассматриваются в контексте современных платформенных контрактов.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 25 вопросов, на работу отведено 70 минут. В каждом задании верен только один вариант. Часть фрагментов намеренно содержит ошибку: определяйте её по коду, а не по внешнему виду ответа. После завершения откроются общий результат, 5 тематических шкал и подробные объяснения.
Вопрос 1 из 25
Проследите типы, изменения состояния и порядок вызовов. Какое описание результата совпадает с кодом? Здесь оценивается различие обычного и вложенного Optional.
SwiftПреобразование через map · фрагмент для разбора
let text: String? = "swift"
let length = text.map(\.count)
print(length as Any)
Вопрос 2 из 25
Что увидит разработчик после выполнения этого примера по теме «Преобразование через flatMap»? Проверяется выравнивание Optional и условное выполнение.
SwiftПреобразование через flatMap · фрагмент для разбора
let raw: String? = "120"
let number = raw.flatMap(Int.init)
print(number as Any)
Вопрос 3 из 25
Не запуская код, восстановите состояние значений после последней строки. Какой вывод верен для «Цепочки optional»? Проверяется условный доступ, вызов и присваивание.
SwiftЦепочки optional · фрагмент для разбора
struct Address { var city: String }
struct User5 { var address: Address? }
let user: User5? = User5(address: Address(city: "Tartu"))
print(user?.address?.city as Any)
Вопрос 4 из 25
Что увидит разработчик после выполнения этого примера по теме «Значения по умолчанию»? Важно учесть: ленивость nil-coalescing и отличие nil от «пустых» значений.
SwiftЗначения по умолчанию · фрагмент для разбора
let cached: String? = nil
let value = cached ?? "fallback"
print(value)
Вопрос 5 из 25
Определите не предполагаемое, а фактическое поведение примера «Граничные случаи Optional». Здесь оценивается полнота набора граничных случаев и сохранение причины отсутствия.
SwiftТестирование и диагностика · фрагмент для разбора
import Foundation

func normalized(_ text: String?) -> String? {
    text?.trimmingCharacters(in: .whitespaces).nilIfEmpty
}

extension String {
    var nilIfEmpty: String? { isEmpty ? nil : self }
}

print(normalized("   ") as Any)
Вопрос 6 из 25
Ожидаемое поведение не совпало с фактическим. В чём первая нарушенная гарантия? Здесь оценивается различие обычного и вложенного Optional.
SwiftПреобразование через map · фрагмент для разбора
let raw: String? = "x"
let number = raw.map(Int.init)
print(number as Any)
Вопрос 7 из 25
Почему этот код не выполняет заявленный контракт? Важно учесть: выравнивание Optional и условное выполнение.
SwiftПреобразование через flatMap · фрагмент для разбора
let value: Int? = 3
let result = value.flatMap { Optional.some($0 * 2) }
print(result as Any)
Вопрос 8 из 25
Что именно делает этот фрагмент неверным или неочевидным с точки зрения «Цепочки optional»? Здесь оценивается условный доступ, вызов и присваивание.
SwiftЦепочки optional · фрагмент для разбора
final class Box5 { var value = 0 }
var box: Box5? = nil
box?.value = 7
print(box as Any)
Вопрос 9 из 25
Почему этот код не выполняет заявленный контракт? Важно учесть: ленивость nil-coalescing и отличие nil от «пустых» значений.
SwiftЗначения по умолчанию · фрагмент для разбора
func expensive() -> String { print("called"); return "new" }
let cached: String? = "old"
let value = cached ?? expensive()
print(value)
Вопрос 10 из 25
Разработчик видит симптом, но ищет первопричину. Какое объяснение выдерживает проверку кодом? Сосредоточьтесь на следующем: полнота набора граничных случаев и сохранение причины отсутствия.
SwiftТестирование и диагностика · фрагмент для разбора
func parsePort(_ text: String?) -> Int {
    text.flatMap(Int.init) ?? 0
}
Вопрос 11 из 25
Как восстановить заявленный контракт с наименьшим числом новых скрытых предположений? Проверяется различие обычного и вложенного Optional.
SwiftПреобразование через map · фрагмент для разбора
let raw: String? = "x"
let number = raw.map(Int.init)
print(number as Any)
Вопрос 12 из 25
Какое решение одновременно исправляет код и оставляет понятную границу для дальнейших изменений? Сосредоточьтесь на следующем: выравнивание Optional и условное выполнение.
SwiftПреобразование через flatMap · фрагмент для разбора
let value: Int? = 3
let result = value.flatMap { Optional.some($0 * 2) }
print(result as Any)
Вопрос 13 из 25
Как восстановить заявленный контракт с наименьшим числом новых скрытых предположений? Важно учесть: условный доступ, вызов и присваивание.
SwiftЦепочки optional · фрагмент для разбора
final class Box5 { var value = 0 }
var box: Box5? = nil
box?.value = 7
print(box as Any)
Вопрос 14 из 25
Какая правка делает намерение кода явным и проверяемым? Проверяется ленивость nil-coalescing и отличие nil от «пустых» значений.
SwiftЗначения по умолчанию · фрагмент для разбора
func expensive() -> String { print("called"); return "new" }
let cached: String? = "old"
let value = cached ?? expensive()
print(value)
Вопрос 15 из 25
Какая правка делает намерение кода явным и проверяемым? Здесь оценивается полнота набора граничных случаев и сохранение причины отсутствия.
SwiftТестирование и диагностика · фрагмент для разбора
func parsePort(_ text: String?) -> Int {
    text.flatMap(Int.init) ?? 0
}
Вопрос 16 из 25
Какое ограничение темы «Преобразование через map» обязательно проверить отдельным граничным тестом? Сосредоточьтесь на следующем: различие обычного и вложенного Optional.
Вопрос 17 из 25
Какое уточнение защищает решение от слишком широкого толкования? Сосредоточьтесь на следующем: выравнивание Optional и условное выполнение.
Вопрос 18 из 25
На какой границе входов, владения или времени жизни результат может стать другим? Важно учесть: условный доступ, вызов и присваивание.
Вопрос 19 из 25
Что нужно учесть, прежде чем объявлять найденное правило универсальным? Не упускайте из виду следующее: ленивость nil-coalescing и отличие nil от «пустых» значений.
Вопрос 20 из 25
Какое уточнение защищает решение от слишком широкого толкования? Сосредоточьтесь на следующем: полнота набора граничных случаев и сохранение причины отсутствия.
Вопрос 21 из 25
Команда выбирает не просто рабочую строку, а устойчивое устройство решения. Какой подход сильнее? Здесь оценивается различие обычного и вложенного Optional.
Вопрос 22 из 25
Какое замечание на проверке кода поможет предотвратить повторение такого дефекта? Важно учесть: выравнивание Optional и условное выполнение.
Вопрос 23 из 25
Какой подход делает неправильное использование заметным раньше? Важно учесть: условный доступ, вызов и присваивание.
Вопрос 24 из 25
Какой принцип важнее локальной красоты синтаксиса в рабочем приложении? Сосредоточьтесь на следующем: ленивость nil-coalescing и отличие nil от «пустых» значений.
Вопрос 25 из 25
Какой подход делает неправильное использование заметным раньше? Проверяется полнота набора граничных случаев и сохранение причины отсутствия.

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу