SW Swift  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Перечисления и associated values

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов, на работу отведено 55 минут. В каждом задании верен только один вариант. Часть фрагментов намеренно содержит ошибку: определяйте её по коду, а не по внешнему виду ответа. После завершения откроются общий результат, 4 тематические шкалы и подробные объяснения.
Вопрос 1 из 20
Определите не предполагаемое, а фактическое поведение примера «Перечисления». Важно учесть: различие между обычным enum и представлением через исходное значение.
SwiftПеречисления · фрагмент для разбора
enum Direction { case north, south, east, west }
let d: Direction = .east
print(d == .east)
Вопрос 2 из 20
Как поведёт себя программа в этом коротком сценарии, связанном с «Связанные значения»? Проверяется извлечение данных из конкретного случая enum.
SwiftСвязанные значения · фрагмент для разбора
enum LoadResult { case success(Int), failure(String) }
let result = LoadResult.success(200)
if case let .success(code) = result { print(code) }
Вопрос 3 из 20
Какой итог даст показанный фрагмент, если применять правила Swift буквально, а не угадывать намерение автора? Важно учесть: инициализация из внешнего представления и эволюция перечисления.
SwiftИсходные значения · фрагмент для разбора
enum HTTPMethod: String { case get = "GET", post = "POST" }
print(HTTPMethod(rawValue: "GET") as Any)
Вопрос 4 из 20
Какой итог даст показанный фрагмент, если применять правила Swift буквально, а не угадывать намерение автора? Здесь оценивается ценность исчерпывающего сопоставления при развитии модели.
SwiftИсчерпывающий switch · фрагмент для разбора
enum Phase { case start, running, done }
func text(_ phase: Phase) -> String {
    switch phase {
    case .start: "start"
    case .running: "run"
    case .done: "done"
    }
}
print(text(.done))
Вопрос 5 из 20
Какой вывод о типах, владении или порядке выполнения следует из показанного дефекта? Здесь оценивается различие между обычным enum и представлением через исходное значение.
SwiftПеречисления · фрагмент для разбора
enum Status { case ok, failed }
let status = Status.ok
print(status.rawValue)
Вопрос 6 из 20
Что в этом фрагменте нужно объяснить первым, чтобы дальнейшая правка не оказалась случайной? Проверяется извлечение данных из конкретного случая enum.
SwiftСвязанные значения · фрагмент для разбора
enum Event { case tap(x: Int, y: Int) }
let event = Event.tap(x: 2, y: 3)

switch event {
case let .tap(x, y, pressure):
    print(x, y, pressure)
}
Вопрос 7 из 20
Почему этот код не выполняет заявленный контракт? Важно учесть: инициализация из внешнего представления и эволюция перечисления.
SwiftИсходные значения · фрагмент для разбора
enum Rank: Int { case low = 1, medium, high }
print(Rank.high.rawValue)
Вопрос 8 из 20
Какой разбор отличает реальную причину от сопутствующего риска? Не упускайте из виду следующее: ценность исчерпывающего сопоставления при развитии модели.
SwiftИсчерпывающий switch · фрагмент для разбора
enum APIState { case loading, loaded, failed }
func isBusy(_ state: APIState) -> Bool {
    switch state {
    case .loading: true
    default: false
    }
}
Вопрос 9 из 20
Что нужно поменять в реализации или сигнатуре, чтобы отрицательный сценарий стал корректным? Не упускайте из виду следующее: различие между обычным enum и представлением через исходное значение.
SwiftПеречисления · фрагмент для разбора
enum Status { case ok, failed }
let status = Status.ok
print(status.rawValue)
Вопрос 10 из 20
Как восстановить заявленный контракт с наименьшим числом новых скрытых предположений? Важно учесть: извлечение данных из конкретного случая enum.
SwiftСвязанные значения · фрагмент для разбора
enum Event { case tap(x: Int, y: Int) }
let event = Event.tap(x: 2, y: 3)

switch event {
case let .tap(x, y, pressure):
    print(x, y, pressure)
}
Вопрос 11 из 20
Что нужно поменять в реализации или сигнатуре, чтобы отрицательный сценарий стал корректным? Проверяется инициализация из внешнего представления и эволюция перечисления.
SwiftИсходные значения · фрагмент для разбора
enum Rank: Int { case low = 1, medium, high }
print(Rank.high.rawValue)
Вопрос 12 из 20
Какая правка решает проблему на том уровне, где она возникла? Важно учесть: ценность исчерпывающего сопоставления при развитии модели.
SwiftИсчерпывающий switch · фрагмент для разбора
enum APIState { case loading, loaded, failed }
func isBusy(_ state: APIState) -> Bool {
    switch state {
    case .loading: true
    default: false
    }
}
Вопрос 13 из 20
Какое уточнение защищает решение от слишком широкого толкования? Сосредоточьтесь на следующем: различие между обычным enum и представлением через исходное значение.
Вопрос 14 из 20
Какое условие отличает надёжное обобщение от случайно удачного запуска? Не упускайте из виду следующее: извлечение данных из конкретного случая enum.
Вопрос 15 из 20
Какой отрицательный сценарий лучше всего проверяет предел применимости этого механизма? Не упускайте из виду следующее: инициализация из внешнего представления и эволюция перечисления.
Вопрос 16 из 20
Какой пограничный случай способен изменить вывод, хотя синтаксис останется почти тем же? Здесь оценивается ценность исчерпывающего сопоставления при развитии модели.
Вопрос 17 из 20
Какой подход делает неправильное использование заметным раньше? Проверяется различие между обычным enum и представлением через исходное значение.
Вопрос 18 из 20
Какое замечание на проверке кода поможет предотвратить повторение такого дефекта? Не упускайте из виду следующее: извлечение данных из конкретного случая enum.
Вопрос 19 из 20
Какой выбор лучше удерживает баланс между ясностью, проверяемостью и стоимостью выполнения? Сосредоточьтесь на следующем: инициализация из внешнего представления и эволюция перечисления.
Вопрос 20 из 20
Какой подход делает неправильное использование заметным раньше? Проверяется ценность исчерпывающего сопоставления при развитии модели.

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

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

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

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