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

Типы, переменные и optional

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов, на работу отведено 55 минут. В каждом задании верен только один вариант. Часть фрагментов намеренно содержит ошибку: определяйте её по коду, а не по внешнему виду ответа. После завершения откроются общий результат, 4 тематические шкалы и подробные объяснения.
Вопрос 1 из 20
Какой из пяти выводов подтверждается построчной трассировкой? Важно учесть: различие между неизменяемой привязкой и изменяемым состоянием.
Swiftlet и var · фрагмент для разбора
var attempts = 1
let limit = 3
attempts += 1
print(attempts, limit)
Вопрос 2 из 20
Определите не предполагаемое, а фактическое поведение примера «Типы значений». Здесь оценивается арифметика значений, вывод типа и цена неявных предположений.
SwiftТипы значений · фрагмент для разбора
let total = 7
let parts = 2
let ratio = Double(total) / Double(parts)
print(ratio)
Вопрос 3 из 20
В этом примере важна одна точная деталь механизма «Необязательные значения Optional». Что действительно произойдёт? Проверяется различие между отсутствием значения, пустым значением и неудачным преобразованием.
SwiftНеобязательные значения Optional · фрагмент для разбора
let raw: String? = "42"
let number = raw.flatMap(Int.init)
print(number as Any)
Вопрос 4 из 20
Что увидит разработчик после выполнения этого примера по теме «Безопасное извлечение»? Не упускайте из виду следующее: выбор между optional binding, guard, значением по умолчанию и принудительным извлечением.
SwiftБезопасное извлечение · фрагмент для разбора
let name: String? = "Ada"
if let name {
    print(name.count)
} else {
    print(0)
}
Вопрос 5 из 20
На проверку кода принесли этот фрагмент. Какой диагноз точнее всего объясняет проблему в части «let и var»? Проверяется различие между неизменяемой привязкой и изменяемым состоянием.
Swiftlet и var · фрагмент для разбора
let queue = ["A", "B"]
queue.append("C")
print(queue.count)
Вопрос 6 из 20
Какой диагноз согласуется и с исходным кодом, и с правилами Swift? Проверяется арифметика значений, вывод типа и цена неявных предположений.
SwiftТипы значений · фрагмент для разбора
let price = 199
let discount = 15
let final = price * (1 - discount / 100)
print(final)
Вопрос 7 из 20
Почему этот код не выполняет заявленный контракт? Не упускайте из виду следующее: различие между отсутствием значения, пустым значением и неудачным преобразованием.
SwiftНеобязательные значения Optional · фрагмент для разбора
let token: String? = nil
if token == "" {
    print("empty")
} else {
    print("missing or nonempty")
}
Вопрос 8 из 20
Какую причину стоит указать в отчёте об ошибке, прежде чем предлагать исправление? Здесь оценивается выбор между optional binding, guard, значением по умолчанию и принудительным извлечением.
SwiftБезопасное извлечение · фрагмент для разбора
import Foundation

func normalized(_ value: String?) -> String {
    guard let value else { return "unknown" }
    return value.trimmingCharacters(in: .whitespaces)
}
Вопрос 9 из 20
Какой вариант ремонта вы бы приняли после содержательной проверки кода? Не упускайте из виду следующее: различие между неизменяемой привязкой и изменяемым состоянием.
Swiftlet и var · фрагмент для разбора
let queue = ["A", "B"]
queue.append("C")
print(queue.count)
Вопрос 10 из 20
Какой вариант ремонта вы бы приняли после содержательной проверки кода? Проверяется арифметика значений, вывод типа и цена неявных предположений.
SwiftТипы значений · фрагмент для разбора
let price = 199
let discount = 15
let final = price * (1 - discount / 100)
print(final)
Вопрос 11 из 20
Выберите правку, после которой дефект исчезает не только в удачном примере. Здесь оценивается различие между отсутствием значения, пустым значением и неудачным преобразованием.
SwiftНеобязательные значения Optional · фрагмент для разбора
let token: String? = nil
if token == "" {
    print("empty")
} else {
    print("missing or nonempty")
}
Вопрос 12 из 20
Выберите правку, после которой дефект исчезает не только в удачном примере. Важно учесть: выбор между optional binding, guard, значением по умолчанию и принудительным извлечением.
SwiftБезопасное извлечение · фрагмент для разбора
import Foundation

func normalized(_ value: String?) -> String {
    guard let value else { return "unknown" }
    return value.trimmingCharacters(in: .whitespaces)
}
Вопрос 13 из 20
Какую предпосылку стоит явно записать в документации и тестах? Здесь оценивается различие между неизменяемой привязкой и изменяемым состоянием.
Вопрос 14 из 20
На какой границе входов, владения или времени жизни результат может стать другим? Проверяется арифметика значений, вывод типа и цена неявных предположений.
Вопрос 15 из 20
Какое уточнение защищает решение от слишком широкого толкования? Здесь оценивается различие между отсутствием значения, пустым значением и неудачным преобразованием.
Вопрос 16 из 20
Какую предпосылку стоит явно записать в документации и тестах? Не упускайте из виду следующее: выбор между optional binding, guard, значением по умолчанию и принудительным извлечением.
Вопрос 17 из 20
Какой инженерный принцип лучше всего подходит для долгосрочного сопровождения части «let и var»? Сосредоточьтесь на следующем: различие между неизменяемой привязкой и изменяемым состоянием.
Вопрос 18 из 20
Команда выбирает не просто рабочую строку, а устойчивое устройство решения. Какой подход сильнее? Сосредоточьтесь на следующем: арифметика значений, вывод типа и цена неявных предположений.
Вопрос 19 из 20
Какой выбор лучше удерживает баланс между ясностью, проверяемостью и стоимостью выполнения? Сосредоточьтесь на следующем: различие между отсутствием значения, пустым значением и неудачным преобразованием.
Вопрос 20 из 20
Какое замечание на проверке кода поможет предотвратить повторение такого дефекта? Важно учесть: выбор между optional binding, guard, значением по умолчанию и принудительным извлечением.

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

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

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

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