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

Методы и способы передачи аргументов

Тест «Методы и способы передачи аргументов» проверяет чтение кода, объяснение причин, поиск скрытых рисков, выбор исправления и работу с граничными сценариями. В нём 20 вопросов, 10 заданий с Ruby-кодом и 4 тематических шкал.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. Время — 55 минут. У каждого задания ровно один правильный вариант. Фрагменты рассчитаны на Ruby 4.0.6; задания Rails — на Rails 8.1.3. После завершения откроются общий процент, 4 тематических результатов и разбор всех ответов.
Вопрос 1 из 20
Проследите выполнение фрагмента. Какой результат верен для темы «Позиционные аргументы»? Оценивайте ответ целиком: обе части утверждения должны быть точными.
RubyRuby — Позиционные аргументы
# Проследите выполнение и выберите точный результат.
def area(width, height = 2)
  [width, height]
end
p area(3)
p area(3, 5)
Вопрос 2 из 20
Как следует прочитать результат показанного примера «Ключевые аргументы»? Выберите связку, в которой верны и основной вывод, и его обоснование.
RubyRuby — Ключевые аргументы
# Проследите выполнение и выберите точный результат.
def connect(timeout:, retries: 2)
  [timeout, retries]
end
opts = { timeout: 5 }
p connect(**opts)
Вопрос 3 из 20
Как изменится состояние программы после выполнения кода по теме «Распаковка аргументов (splat)»? Сопоставьте не только итог, но и правило, риск или проверку, которые с ним связаны.
RubyRuby — Распаковка аргументов (splat)
# Проследите выполнение и выберите точный результат.
def unpack(first, *rest, **meta)
  [first, rest, meta]
end
p unpack(1, 2, 3, unit: :ms)
Вопрос 4 из 20
Какой вывод учитывает и возвращаемое значение, и побочный эффект в теме «Возврат значения»? Сопоставьте не только итог, но и правило, риск или проверку, которые с ним связаны.
RubyRuby — Возврат значения
# Проследите выполнение и выберите точный результат.
def normalize(value)
  return :negative if value.negative?
  value * 2
end
p [normalize(-1), normalize(4)]
Вопрос 5 из 20
Почему успешный пример ещё не доказывает надёжность решения «Позиционные аргументы»? Выберите связку, в которой верны и основной вывод, и его обоснование.
RubyRuby — Позиционные аргументы
# Обычный запуск проходит. Найдите скрытый риск.
def area(width, height = 2)
  [width, height]
end
p area(3)
p area(3, 5)
Вопрос 6 из 20
Что может сломаться при переносе этого решения «Ключевые аргументы» в рабочую систему? Проверьте обе половины ответа: частично верный вариант остаётся неверным.
RubyRuby — Ключевые аргументы
# Обычный запуск проходит. Найдите скрытый риск.
def connect(timeout:, retries: 2)
  [timeout, retries]
end
opts = { timeout: 5 }
p connect(**opts)
Вопрос 7 из 20
Какой отказ связан с причиной в коде, а не с внешним шумом, в теме «Распаковка аргументов (splat)»? Смотрите на всю причинную связку, а не только на знакомую формулировку.
RubyRuby — Распаковка аргументов (splat)
# Обычный запуск проходит. Найдите скрытый риск.
def unpack(first, *rest, **meta)
  [first, rest, meta]
end
p unpack(1, 2, 3, unit: :ms)
Вопрос 8 из 20
Какой отказ связан с причиной в коде, а не с внешним шумом, в теме «Возврат значения»? Сопоставьте не только итог, но и правило, риск или проверку, которые с ним связаны.
RubyRuby — Возврат значения
# Обычный запуск проходит. Найдите скрытый риск.
def normalize(value)
  return :negative if value.negative?
  value * 2
end
p [normalize(-1), normalize(4)]
Вопрос 9 из 20
Как сформулировать правило блока «Позиционные аргументы» без лишних обещаний? Не выбирайте ответ по одному точному фрагменту: вся формулировка должна выдерживать проверку.
Вопрос 10 из 20
Какой механизм объясняет и обычный, и граничный сценарий «Ключевые аргументы»? Оценивайте ответ целиком: обе части утверждения должны быть точными.
Вопрос 11 из 20
Какой механизм объясняет и обычный, и граничный сценарий «Распаковка аргументов (splat)»? Проверьте обе половины ответа: частично верный вариант остаётся неверным.
Вопрос 12 из 20
Какое правило Ruby или Rails объясняет поведение в теме «Возврат значения»? Оценивайте ответ целиком: обе части утверждения должны быть точными.
Вопрос 13 из 20
Какой вариант правки выдержит граничный сценарий темы «Позиционные аргументы»? Смотрите на всю причинную связку, а не только на знакомую формулировку.
RubyRuby — Позиционные аргументы
# Выберите изменение, которое исправляет причину.
def area(width, height = 2)
  [width, height]
end
p area(3)
p area(3, 5)
Вопрос 14 из 20
Какое действие добавляет недостающую гарантию в блоке «Ключевые аргументы»? Ищите не знакомые слова, а технически непротиворечивую пару утверждений.
RubyRuby — Ключевые аргументы
# Выберите изменение, которое исправляет причину.
def connect(timeout:, retries: 2)
  [timeout, retries]
end
opts = { timeout: 5 }
p connect(**opts)
Вопрос 15 из 20
Какой вариант правки выдержит граничный сценарий темы «Распаковка аргументов (splat)»? Нужен вариант без логического разрыва между первой и второй частью.
Вопрос 16 из 20
Какой подход сохраняет намерение кода и устраняет дефект в теме «Возврат значения»? Проверьте обе половины ответа: частично верный вариант остаётся неверным.
Вопрос 17 из 20
Какой сценарий должен падать на старой реализации и проходить после исправления «Позиционные аргументы»? Нужен вариант без логического разрыва между первой и второй частью.
Вопрос 18 из 20
Какой случай покажет, что исправление «Ключевые аргументы» не держится на удачном входе? Выберите связку, в которой верны и основной вывод, и его обоснование.
Вопрос 19 из 20
Какой сценарий должен падать на старой реализации и проходить после исправления «Распаковка аргументов (splat)»? Верный вариант не содержит частично правильной подмены причины или следствия.
Вопрос 20 из 20
Что следует добавить в набор проверок по теме «Возврат значения», чтобы поймать редкий отказ? Сопоставьте не только итог, но и правило, риск или проверку, которые с ним связаны.

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

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

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

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