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

Option, Either и Try

В тесте «Option, Either и Try» недостаточно узнать термин: потребуется проследить типы и выполнение, найти риск соседнего случая и выбрать проверяемую правку. Шкалы: Отсутствие значения, Ошибки как данные, Композиция, Преобразование результата.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 1 из 20
В теме «Отсутствие значения» какая из перечисленных гарантий принадлежит именно показанному механизму?
ScalaОтсутствие значения: чтение фрагмента
val found = Map("a" -> 1).get("b")
println(found.fold(0)(_ * 10))
Вопрос 2 из 20
Для темы «Отсутствие значения» обычный пример прошёл, затем изменились условия использования. Какой риск нужно проверить первым?
ScalaОтсутствие значения: изменившийся контекст
// Дополнительный контекст: После рефакторинга код по-прежнему компилируется, однако его статический тип стал шире.
val found = Map("a" -> 1).get("b")
println(found.fold(0)(_ * 10))
Вопрос 3 из 20
При исправлении темы «Отсутствие значения» команда сравнивает несколько правок. Какая из них делает допущение явным и проверяемым?
ScalaОтсутствие значения: решение на ревью
val found = Map("a" -> 1).get("b")
println(found.fold(0)(_ * 10))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 4 из 20
В контракте темы «Отсутствие значения» фрагмент вынесли из локальной функции в общий модуль и добавили новый вариант входных данных. Какой анализ пригоден для публичного API?
Вопрос 5 из 20
Какой критерий готовности по теме «Отсутствие значения» действительно поймает повтор прежнего дефекта?
Вопрос 6 из 20
В теме «Ошибки как данные» как сформулировать семантику примера так, чтобы она сохранилась после переименования переменных?
ScalaОшибки как данные: чтение фрагмента
def parse(s: String): Either[String, Int] = s.toIntOption.toRight("not a number")
println(parse("12").map(_ + 1))
Вопрос 7 из 20
Какой сценарий отличает реальную гарантию «Ошибки как данные» от случайного успеха?
ScalaОшибки как данные: изменившийся контекст
// Дополнительный контекст: Публичную сигнатуру слегка изменили, но большая часть вызывающего кода осталась прежней.
def parse(s: String): Either[String, Int] = s.toIntOption.toRight("not a number")
println(parse("12").map(_ + 1))
Вопрос 8 из 20
При исправлении темы «Ошибки как данные» какой вариант не переносит проблему в вызывающий код?
ScalaОшибки как данные: решение на ревью
def parse(s: String): Either[String, Int] = s.toIntOption.toRight("not a number")
println(parse("12").map(_ + 1))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 9 из 20
В контракте темы «Ошибки как данные» какой вариант не теряет существенную часть технической картины?
Вопрос 10 из 20
При проверке темы «Ошибки как данные» что лучше не оставлять только в устной договорённости?
Вопрос 11 из 20
Во фрагменте проверяется тема «Композиция». Какое правило точнее всего объясняет поведение кода?
ScalaКомпозиция: чтение фрагмента
val r = for
  a <- "10".toIntOption
  b <- "2".toIntOption
yield a / b
println(r)
Вопрос 12 из 20
Для темы «Композиция» на какой границе это решение перестаёт быть достаточным?
Вопрос 13 из 20
При исправлении темы «Композиция» что следует изменить, чтобы следующий рефакторинг не вернул тот же риск?
ScalaКомпозиция: решение на ревью
val r = for
  a <- "10".toIntOption
  b <- "2".toIntOption
yield a / b
println(r)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 14 из 20
В контракте темы «Композиция» что следует оставить в проектном решении после этого изменения контекста?
Вопрос 15 из 20
При проверке темы «Композиция» какой итог можно проверить автоматически или воспроизводимым примером?
Вопрос 16 из 20
В теме «Преобразование результата» что в этом примере определяется семантикой Scala, а не соглашением автора?
ScalaПреобразование результата: чтение фрагмента
import scala.util.Try
val r = Try("42".toInt).map(_ / 2)
println(r)
Вопрос 17 из 20
Для темы «Преобразование результата» после переноса кода в общий модуль проявилось скрытое допущение. Какое?
Вопрос 18 из 20
Какое действие делает решение по теме «Преобразование результата» устойчивее?
ScalaПреобразование результата: решение на ревью
import scala.util.Try
val r = Try("42".toInt).map(_ / 2)
println(r)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 20
В контракте темы «Преобразование результата» фрагмент вынесли из локальной функции в общий модуль и добавили новый вариант входных данных. Какой вывод одновременно сохраняет правило и учитывает его границу?
Вопрос 20 из 20
При проверке темы «Преобразование результата» как сформулировать защиту от регрессии без расплывчатого «работает как раньше»?

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

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

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

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