SC Scala  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Ленивость и вычисление по требованию

В тесте «Ленивость и вычисление по требованию» недостаточно узнать термин: потребуется проследить типы и выполнение, найти риск соседнего случая и выбрать проверяемую правку. Шкалы: Ленивые значения `lazy val`, Итераторы, Представления коллекций, Порядок вычисления, Ошибки интеграции.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 1 из 25
Какая характеристика конструкции «Ленивые значения `lazy val`» подтверждается показанным фрагментом?
ScalaЛенивые значения `lazy val`: чтение фрагмента
lazy val value = { println("init"); 42 }
println(value)
println(value)
Вопрос 2 из 25
Для темы «Ленивые значения `lazy val`» что здесь требует отдельного теста или компиляционного примера?
ScalaЛенивые значения `lazy val`: изменившийся контекст
// Дополнительный контекст: Преобразование стало частью горячего пути, а промежуточный результат сохранили для повторного чтения.
lazy val value = { println("init"); 42 }
println(value)
println(value)
Вопрос 3 из 25
При исправлении темы «Ленивые значения `lazy val`» нужно устранить причину, а не замаскировать симптом. Какое изменение подходит лучше?
ScalaЛенивые значения `lazy val`: решение на ревью
lazy val value = { println("init"); 42 }
println(value)
println(value)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 4 из 25
В контракте темы «Ленивые значения `lazy val`» после изменения окружения команда пересматривает контракт. Какой вариант корректен?
n_{evaluated}\le n_{source}
Вопрос 5 из 25
При проверке темы «Ленивые значения `lazy val`» какая проверка связывает принятую правку с реальной границей решения?
Вопрос 6 из 25
В теме «Итераторы» проследите типы и порядок вычисления. Какой вывод выдерживает такую проверку?
ScalaИтераторы: чтение фрагмента
val it = Iterator(1,2,3)
println(it.sum)
println(it.toList)
Вопрос 7 из 25
Какой сценарий обнаруживает слабое место «Итераторы»?
ScalaИтераторы: изменившийся контекст
// Дополнительный контекст: Преобразование стало частью горячего пути, а промежуточный результат сохранили для повторного чтения.
val it = Iterator(1,2,3)
println(it.sum)
println(it.toList)
Вопрос 8 из 25
Какое изменение делает допущение темы «Итераторы» явным?
ScalaИтераторы: решение на ревью
val it = Iterator(1,2,3)
println(it.sum)
println(it.toList)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 9 из 25
В контракте темы «Итераторы» какая формулировка учитывает и семантику конструкции, и реальный риск?
Вопрос 10 из 25
При проверке темы «Итераторы» какой итог ревью содержит и действие, и способ заметить возврат риска?
Вопрос 11 из 25
В теме «Представления коллекций» какое утверждение не переносит в Scala правило из другого языка или другой конструкции?
ScalaПредставления коллекций: чтение фрагмента
val v = (1 to 5).view.map { n => println(n); n * 2 }
println(v.take(2).toList)
Вопрос 12 из 25
Коллекцию заменили другой реализацией `Seq`, не меняя вызывающий код. Какое ограничение темы «Представления коллекций» становится существенным?
ScalaПредставления коллекций: изменившийся контекст
// Дополнительный контекст: Тот же алгоритм запустили на большом наборе и попытались использовать полученный обход повторно.
val v = (1 to 5).view.map { n => println(n); n * 2 }
println(v.take(2).toList)
Вопрос 13 из 25
При исправлении темы «Представления коллекций» какое решение уменьшает вероятность повторения обнаруженного дефекта?
ScalaПредставления коллекций: решение на ревью
val v = (1 to 5).view.map { n => println(n); n * 2 }
println(v.take(2).toList)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 14 из 25
В контракте темы «Представления коллекций» новый сценарий не отменяет основное правило, но делает заметной его границу. Какой ответ это отражает?
Вопрос 15 из 25
При проверке темы «Представления коллекций» что нужно оставить после исправления, кроме комментария в исходном файле?
Вопрос 16 из 25
В теме «Порядок вычисления» какое утверждение о контракте фрагмента остаётся точным?
ScalaПорядок вычисления: чтение фрагмента
val r = Iterator.from(1).map(_ * 2).filter(_ % 3 == 0).take(3).toList
println(r)
Вопрос 17 из 25
Для темы «Порядок вычисления» обычный пример прошёл, затем изменились условия использования. Какой риск нужно проверить первым?
ScalaПорядок вычисления: изменившийся контекст
// Дополнительный контекст: Коллекцию заменили другой реализацией `Seq`, не меняя вызывающий код.
val r = Iterator.from(1).map(_ * 2).filter(_ % 3 == 0).take(3).toList
println(r)
Вопрос 18 из 25
При исправлении темы «Порядок вычисления» команда сравнивает несколько правок. Какая из них делает допущение явным и проверяемым?
ScalaПорядок вычисления: решение на ревью
val r = Iterator.from(1).map(_ * 2).filter(_ % 3 == 0).take(3).toList
println(r)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 25
В контракте темы «Порядок вычисления» коллекцию заменили другой реализацией `Seq`, не меняя вызывающий код. Какой анализ пригоден для публичного API?
Вопрос 20 из 25
Какой критерий готовности по теме «Порядок вычисления» действительно поймает повтор прежнего дефекта?
Вопрос 21 из 25
В теме «Ошибки интеграции» как сформулировать семантику примера так, чтобы она сохранилась после переименования переменных?
ScalaОшибки интеграции: чтение фрагмента
import scala.util.Using
// Iterator нельзя безопасно читать после закрытия Source.
val lines = Using.resource(scala.io.Source.fromString("a\nb"))(_.getLines().toList)
Вопрос 22 из 25
При каком расширении задачи обнаружится слабое место «Ошибки интеграции»?
Вопрос 23 из 25
При исправлении темы «Ошибки интеграции» какой вариант не переносит проблему в вызывающий код?
ScalaОшибки интеграции: решение на ревью
import scala.util.Using
// Iterator нельзя безопасно читать после закрытия Source.
val lines = Using.resource(scala.io.Source.fromString("a\nb"))(_.getLines().toList)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 24 из 25
В контракте темы «Ошибки интеграции» какой вариант не теряет существенную часть технической картины?
Вопрос 25 из 25
При проверке темы «Ошибки интеграции» что команда должна проверять при каждом похожем изменении?

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

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

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

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