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

Значения, переменные и вывод типов Scala

Тест по теме «Значения, переменные и вывод типов Scala» проверяет val и var, Базовые типы, Вывод типов и Выражения. Здесь нужно читать код, различать близкие технические объяснения и замечать границы гарантий.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 1 из 20
Во фрагменте проверяется тема «val и var». Какое правило точнее всего объясняет поведение кода?
Scalaval и var: чтение фрагмента
val xs = scala.collection.mutable.ArrayBuffer(1, 2)
xs += 3
println(xs.mkString(","))
Вопрос 2 из 20
Для темы «val и var» что остаётся обязанностью вызывающего кода или окружения?
Scalaval и var: изменившийся контекст
// Дополнительный контекст: После рефакторинга код по-прежнему компилируется, однако его статический тип стал шире.
val xs = scala.collection.mutable.ArrayBuffer(1, 2)
xs += 3
println(xs.mkString(","))
Вопрос 3 из 20
При исправлении темы «val и var» что следует изменить, чтобы следующий рефакторинг не вернул тот же риск?
Scalaval и var: решение на ревью
val xs = scala.collection.mutable.ArrayBuffer(1, 2)
xs += 3
println(xs.mkString(","))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 4 из 20
В контракте темы «val и var» что следует оставить в проектном решении после этого изменения контекста?
Вопрос 5 из 20
При проверке темы «val и var» какой итог можно проверить автоматически или воспроизводимым примером?
Вопрос 6 из 20
В теме «Базовые типы» что в этом примере определяется семантикой Scala, а не соглашением автора?
ScalaБазовые типы: чтение фрагмента
val total: Long = Int.MaxValue.toLong + 10
val clipped = total.toInt
println(total -> clipped)
Вопрос 7 из 20
Для темы «Базовые типы» после переноса кода в общий модуль проявилось скрытое допущение. Какое?
ScalaБазовые типы: изменившийся контекст
// Дополнительный контекст: Фрагмент вынесли из локальной функции в общий модуль и добавили новый вариант входных данных.
val total: Long = Int.MaxValue.toLong + 10
val clipped = total.toInt
println(total -> clipped)
Вопрос 8 из 20
Какое решение по теме «Базовые типы» опирается на проверяемую гарантию?
ScalaБазовые типы: решение на ревью
val total: Long = Int.MaxValue.toLong + 10
val clipped = total.toInt
println(total -> clipped)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 9 из 20
В контракте темы «Базовые типы» фрагмент вынесли из локальной функции в общий модуль и добавили новый вариант входных данных. Какой вывод одновременно сохраняет правило и учитывает его границу?
Вопрос 10 из 20
При проверке темы «Базовые типы» как сформулировать защиту от регрессии без расплывчатого «работает как раньше»?
Вопрос 11 из 20
Какой вывод о теме «Вывод типов» можно сделать без дополнительных допущений?
ScalaВывод типов: чтение фрагмента
val value = if System.currentTimeMillis() % 2 == 0 then 42 else "42"
println(value.getClass.getSimpleName)
Вопрос 12 из 20
Для темы «Вывод типов» какое последствие нельзя исключить одним успешным запуском?
Вопрос 13 из 20
При исправлении темы «Вывод типов» какая правка сохраняет полезную семантику и не расширяет обещания API?
ScalaВывод типов: решение на ревью
val value = if System.currentTimeMillis() % 2 == 0 then 42 else "42"
println(value.getClass.getSimpleName)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 14 из 20
В контракте темы «Вывод типов» локальный пример стал частью более крупной системы. Какая трактовка контракта остаётся полной?
Вопрос 15 из 20
При проверке темы «Вывод типов» какой пункт следует добавить в критерии приёмки изменения?
Вопрос 16 из 20
В теме «Выражения» код компилируется и запускается. Какое утверждение о его контракте остаётся верным?
ScalaВыражения: чтение фрагмента
val answer =
  val base = 40
  println("counted")
  base + 2
println(answer)
Вопрос 17 из 20
Для темы «Выражения» какой пограничный случай относится к контракту, а не только к стилю записи?
Вопрос 18 из 20
При исправлении темы «Выражения» что здесь лучше исправить до объединения изменений?
ScalaВыражения: решение на ревью
val answer =
  val base = 40
  println("counted")
  base + 2
println(answer)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 20
В контракте темы «Выражения» условия эксплуатации изменились, но синтаксис остался прежним. Что теперь важно удержать вместе?
Вопрос 20 из 20
При проверке темы «Выражения» что поможет соседнему модулю не повторить ту же ошибку?

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

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

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

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