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

For-comprehension

Тест по теме «For-comprehension» проверяет map и flatMap, Фильтрация, Десугаринг и Композиция контекстов. Здесь нужно читать код, различать близкие технические объяснения и замечать границы гарантий.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 1 из 20
В теме «map и flatMap» проследите типы и порядок вычисления. Какой вывод выдерживает такую проверку?
Scalamap и flatMap: чтение фрагмента
val out = for x <- List(1,2); y <- List(10,20) yield x + y
println(out.mkString(","))
Вопрос 2 из 20
Какое последствие следует проверить при использовании «map и flatMap»?
Scalamap и flatMap: изменившийся контекст
// Дополнительный контекст: После рефакторинга код по-прежнему компилируется, однако его статический тип стал шире.
val out = for x <- List(1,2); y <- List(10,20) yield x + y
println(out.mkString(","))
Вопрос 3 из 20
Какая правка по теме «map и flatMap» не маскирует дефект приведением типа?
Scalamap и flatMap: решение на ревью
val out = for x <- List(1,2); y <- List(10,20) yield x + y
println(out.mkString(","))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 4 из 20
В контракте темы «map и flatMap» какая формулировка учитывает и семантику конструкции, и реальный риск?
Вопрос 5 из 20
При проверке темы «map и flatMap» какой итог ревью содержит и действие, и способ заметить возврат риска?
Вопрос 6 из 20
В теме «Фильтрация» какое утверждение не переносит в Scala правило из другого языка или другой конструкции?
ScalaФильтрация: чтение фрагмента
val out = for
  x <- 1 to 8
  if x % 3 == 0
yield x * x
println(out)
Вопрос 7 из 20
После рефакторинга код по-прежнему компилируется, однако его статический тип стал шире. Какое ограничение темы «Фильтрация» становится существенным?
ScalaФильтрация: изменившийся контекст
// Дополнительный контекст: Фрагмент вынесли из локальной функции в общий модуль и добавили новый вариант входных данных.
val out = for
  x <- 1 to 8
  if x % 3 == 0
yield x * x
println(out)
Вопрос 8 из 20
При исправлении темы «Фильтрация» какое решение уменьшает вероятность повторения обнаруженного дефекта?
ScalaФильтрация: решение на ревью
val out = for
  x <- 1 to 8
  if x % 3 == 0
yield x * x
println(out)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 9 из 20
В контракте темы «Фильтрация» новый сценарий не отменяет основное правило, но делает заметной его границу. Какой ответ это отражает?
Вопрос 10 из 20
При проверке темы «Фильтрация» что нужно оставить после исправления, кроме комментария в исходном файле?
Вопрос 11 из 20
В теме «Десугаринг» какую гарантию действительно даёт показанная конструкция?
ScalaДесугаринг: чтение фрагмента
val r = for
  a <- Option(2)
  b <- Option(3)
yield a * b
println(r)
Вопрос 12 из 20
Для темы «Десугаринг» обычный пример прошёл, затем изменились условия использования. Какой риск нужно проверить первым?
Вопрос 13 из 20
При исправлении темы «Десугаринг» команда сравнивает несколько правок. Какая из них делает допущение явным и проверяемым?
ScalaДесугаринг: решение на ревью
val r = for
  a <- Option(2)
  b <- Option(3)
yield a * b
println(r)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 14 из 20
В контракте темы «Десугаринг» после рефакторинга код по-прежнему компилируется, однако его статический тип стал шире. Какой анализ пригоден для публичного API?
Вопрос 15 из 20
Какой критерий готовности по теме «Десугаринг» действительно поймает повтор прежнего дефекта?
Вопрос 16 из 20
В теме «Композиция контекстов» как сформулировать семантику примера так, чтобы она сохранилась после переименования переменных?
ScalaКомпозиция контекстов: чтение фрагмента
val opt = Option(10)
val either = Right(2): Either[String, Int]
val r = for
  a <- opt.toRight("missing")
  b <- either
yield a / b
println(r)
Вопрос 17 из 20
Что способно нарушить локально верное рассуждение о «Композиция контекстов»?
Вопрос 18 из 20
При исправлении темы «Композиция контекстов» какой вариант не переносит проблему в вызывающий код?
ScalaКомпозиция контекстов: решение на ревью
val opt = Option(10)
val either = Right(2): Either[String, Int]
val r = for
  a <- opt.toRight("missing")
  b <- either
yield a / b
println(r)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 20
В контракте темы «Композиция контекстов» какой вариант не теряет существенную часть технической картины?
Вопрос 20 из 20
При проверке темы «Композиция контекстов» какую гарантию важно превратить в повторяемую проверку?

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

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

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

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