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

Неизменяемые коллекции

Тест по теме «Неизменяемые коллекции» проверяет List и Vector, Map и Set, Преобразования и Стоимость операций. Здесь нужно читать код, различать близкие технические объяснения и замечать границы гарантий.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 1 из 20
Какой вывод о теме «List и Vector» можно сделать без дополнительных допущений?
ScalaList и Vector: чтение фрагмента
val xs = List(1,2,3)
val ys = 0 :: xs
println(ys.tail == xs)
Вопрос 2 из 20
Для темы «List и Vector» какое последствие нельзя исключить одним успешным запуском?
ScalaList и Vector: изменившийся контекст
// Дополнительный контекст: Тот же алгоритм запустили на большом наборе и попытались использовать полученный обход повторно.
val xs = List(1,2,3)
val ys = 0 :: xs
println(ys.tail == xs)
Вопрос 3 из 20
При исправлении темы «List и Vector» какая правка сохраняет полезную семантику и не расширяет обещания API?
ScalaList и Vector: решение на ревью
val xs = List(1,2,3)
val ys = 0 :: xs
println(ys.tail == xs)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 4 из 20
В контракте темы «List и Vector» локальный пример стал частью более крупной системы. Какая трактовка контракта остаётся полной?
Вопрос 5 из 20
При проверке темы «List и Vector» какой пункт следует добавить в критерии приёмки изменения?
Вопрос 6 из 20
В теме «Map и Set» код компилируется и запускается. Какое утверждение о его контракте остаётся верным?
ScalaMap и Set: чтение фрагмента
val m1 = Map("a" -> 1)
val m2 = m1.updated("a", 2)
println(m1("a") -> m2("a"))
Вопрос 7 из 20
Для темы «Map и Set» какой пограничный случай относится к контракту, а не только к стилю записи?
ScalaMap и Set: изменившийся контекст
// Дополнительный контекст: Коллекцию заменили другой реализацией `Seq`, не меняя вызывающий код.
val m1 = Map("a" -> 1)
val m2 = m1.updated("a", 2)
println(m1("a") -> m2("a"))
Вопрос 8 из 20
При исправлении темы «Map и Set» что здесь лучше исправить до объединения изменений?
ScalaMap и Set: решение на ревью
val m1 = Map("a" -> 1)
val m2 = m1.updated("a", 2)
println(m1("a") -> m2("a"))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 9 из 20
В контракте темы «Map и Set» условия эксплуатации изменились, но синтаксис остался прежним. Что теперь важно удержать вместе?
Вопрос 10 из 20
При проверке темы «Map и Set» что поможет соседнему модулю не повторить ту же ошибку?
Вопрос 11 из 20
В теме «Преобразования» на ревью спорят о причине наблюдаемого результата. Какое объяснение корректно?
ScalaПреобразования: чтение фрагмента
val result = List(1,2,3,4).filter(_ % 2 == 0).map(_ * 10)
println(result.mkString("/"))
Вопрос 12 из 20
Для темы «Преобразования» тот же алгоритм запустили на большом наборе и попытались использовать полученный обход повторно. Какой дефект остаётся возможным при корректном синтаксисе?
Вопрос 13 из 20
При исправлении темы «Преобразования» на ревью уже воспроизвели проблему: Цепочка из многих промежуточных коллекций может дать лишние выделения памяти, хотя логика остаётся корректной. Какую правку стоит принять?
ScalaПреобразования: решение на ревью
val result = List(1,2,3,4).filter(_ % 2 == 0).map(_ * 10)
println(result.mkString("/"))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 14 из 20
В контракте темы «Преобразования» какое решение не превращает частный успешный случай в общее обещание?
Вопрос 15 из 20
При проверке темы «Преобразования» какой контроль остаётся полезным после рефакторинга и переименования кода?
Вопрос 16 из 20
Какая характеристика конструкции «Стоимость операций» подтверждается показанным фрагментом?
ScalaСтоимость операций: чтение фрагмента
val xs = (1 to 1000).toList
val first = xs.head
val last = xs(999)
println(first + last)
Вопрос 17 из 20
Для темы «Стоимость операций» что здесь требует отдельного теста или компиляционного примера?
Вопрос 18 из 20
При исправлении темы «Стоимость операций» нужно устранить причину, а не замаскировать симптом. Какое изменение подходит лучше?
ScalaСтоимость операций: решение на ревью
val xs = (1 to 1000).toList
val first = xs.head
val last = xs(999)
println(first + last)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 20
В контракте темы «Стоимость операций» после изменения окружения команда пересматривает контракт. Какой вариант корректен?
Вопрос 20 из 20
При проверке темы «Стоимость операций» какая проверка связывает принятую правку с реальной границей решения?

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

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

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

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