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

Функции и параметры

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов, на работу отведено 55 минут. В каждом задании верен только один вариант. Часть фрагментов намеренно содержит ошибку: определяйте её по коду, а не по внешнему виду ответа. После завершения откроются общий результат, 4 тематические шкалы и подробные объяснения.
Вопрос 1 из 20
В этом примере важна одна точная деталь механизма «Метки аргументов». Что действительно произойдёт? Проверяется контракт вызова, а не только имена параметров внутри тела.
SwiftМетки аргументов · фрагмент для разбора
func move(from start: Int, to end: Int) -> Int { end - start }
print(move(from: 3, to: 10))
Вопрос 2 из 20
Определите не предполагаемое, а фактическое поведение примера «Значения по умолчанию». Сосредоточьтесь на следующем: пропуск аргумента, порядок меток и эволюция публичной функции.
SwiftЗначения по умолчанию · фрагмент для разбора
func badge(for name: String, color: String = "blue") -> String {
    "\(name):\(color)"
}
print(badge(for: "admin"))
Вопрос 3 из 20
Какой итог даст показанный фрагмент, если применять правила Swift буквально, а не угадывать намерение автора? Проверяется синтаксис &, эксклюзивность доступа и границы применения мутации.
SwiftИзменяемые параметры inout · фрагмент для разбора
func increment(_ value: inout Int) { value += 1 }
var count = 4
increment(&count)
print(count)
Вопрос 4 из 20
В этом примере важна одна точная деталь механизма «Возвращаемые функции». Что действительно произойдёт? Важно учесть: функция как значение, захват контекста и точный контракт возврата.
SwiftВозвращаемые функции · фрагмент для разбора
func makeAdder(_ amount: Int) -> (Int) -> Int {
    { value in value + amount }
}
let add3 = makeAdder(3)
print(add3(7))
Вопрос 5 из 20
Что в этом фрагменте нужно объяснить первым, чтобы дальнейшая правка не оказалась случайной? Сосредоточьтесь на следующем: контракт вызова, а не только имена параметров внутри тела.
SwiftМетки аргументов · фрагмент для разбора
func greet(_ name: String, prefix: String) -> String {
    "\(prefix), \(name)"
}
print(greet(name: "Mira", prefix: "Hi"))
Вопрос 6 из 20
Что в этом фрагменте нужно объяснить первым, чтобы дальнейшая правка не оказалась случайной? Проверяется пропуск аргумента, порядок меток и эволюция публичной функции.
SwiftЗначения по умолчанию · фрагмент для разбора
func connect(host: String = "localhost", port: Int) {}
connect(port: 5432, host: "db")
Вопрос 7 из 20
Какой вывод о типах, владении или порядке выполнения следует из показанного дефекта? Не упускайте из виду следующее: синтаксис &, эксклюзивность доступа и границы применения мутации.
SwiftИзменяемые параметры inout · фрагмент для разбора
func swapFirst(_ a: inout Int, _ b: inout Int) { swap(&a, &b) }
var values = [1, 2]
swapFirst(&values[0], &values[0])
Вопрос 8 из 20
Что именно делает этот фрагмент неверным или неочевидным с точки зрения «Возвращаемые функции»? Здесь оценивается функция как значение, захват контекста и точный контракт возврата.
SwiftВозвращаемые функции · фрагмент для разбора
func choose(_ flag: Bool) -> (Int) -> Int {
    if flag { return { $0 + 1 } }
    let decrement: (Int) -> Int = { $0 - 1 }
    decrement
}

_ = choose(false)
Вопрос 9 из 20
Как восстановить заявленный контракт с наименьшим числом новых скрытых предположений? Здесь оценивается контракт вызова, а не только имена параметров внутри тела.
SwiftМетки аргументов · фрагмент для разбора
func greet(_ name: String, prefix: String) -> String {
    "\(prefix), \(name)"
}
print(greet(name: "Mira", prefix: "Hi"))
Вопрос 10 из 20
Какая правка решает проблему на том уровне, где она возникла? Важно учесть: пропуск аргумента, порядок меток и эволюция публичной функции.
SwiftЗначения по умолчанию · фрагмент для разбора
func connect(host: String = "localhost", port: Int) {}
connect(port: 5432, host: "db")
Вопрос 11 из 20
Как восстановить заявленный контракт с наименьшим числом новых скрытых предположений? Сосредоточьтесь на следующем: синтаксис &, эксклюзивность доступа и границы применения мутации.
SwiftИзменяемые параметры inout · фрагмент для разбора
func swapFirst(_ a: inout Int, _ b: inout Int) { swap(&a, &b) }
var values = [1, 2]
swapFirst(&values[0], &values[0])
Вопрос 12 из 20
Какое решение одновременно исправляет код и оставляет понятную границу для дальнейших изменений? Проверяется функция как значение, захват контекста и точный контракт возврата.
SwiftВозвращаемые функции · фрагмент для разбора
func choose(_ flag: Bool) -> (Int) -> Int {
    if flag { return { $0 + 1 } }
    let decrement: (Int) -> Int = { $0 - 1 }
    decrement
}

_ = choose(false)
Вопрос 13 из 20
Где заканчивается гарантия, продемонстрированная в обычном примере «Метки аргументов»? Сосредоточьтесь на следующем: контракт вызова, а не только имена параметров внутри тела.
Вопрос 14 из 20
Какой отрицательный сценарий лучше всего проверяет предел применимости этого механизма? Не упускайте из виду следующее: пропуск аргумента, порядок меток и эволюция публичной функции.
Вопрос 15 из 20
Что нужно учесть, прежде чем объявлять найденное правило универсальным? Здесь оценивается синтаксис &, эксклюзивность доступа и границы применения мутации.
Вопрос 16 из 20
Какое условие отличает надёжное обобщение от случайно удачного запуска? Проверяется функция как значение, захват контекста и точный контракт возврата.
Вопрос 17 из 20
Команда выбирает не просто рабочую строку, а устойчивое устройство решения. Какой подход сильнее? Не упускайте из виду следующее: контракт вызова, а не только имена параметров внутри тела.
Вопрос 18 из 20
Команда выбирает не просто рабочую строку, а устойчивое устройство решения. Какой подход сильнее? Здесь оценивается пропуск аргумента, порядок меток и эволюция публичной функции.
Вопрос 19 из 20
Какой выбор лучше удерживает баланс между ясностью, проверяемостью и стоимостью выполнения? Не упускайте из виду следующее: синтаксис &, эксклюзивность доступа и границы применения мутации.
Вопрос 20 из 20
Какой подход делает неправильное использование заметным раньше? Не упускайте из виду следующее: функция как значение, захват контекста и точный контракт возврата.

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

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

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

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