Здесь обсуждается: http://www.scala -lang.org / node / 3594
Идея состояла в том, чтобы избежать ошибки программиста, путающей «висячий» локальный блок с шаблоном объекта / класса / признака.
object test {
object a
{
val x = 1
}
object b
{ // oops, extra newline disassociates this block with the object b
val x = 1
}
}
test.a.x
//test.b.x // doesn't compile
Если программист действительно хочет, чтобы этот блок был автономным, можно использовать locally
:
object test {
object a
{
val x = 1
}
object b
locally {
val x = 1
}
}
Этот поток также предположил, что первый код выдаст предупреждение об устаревании. Это еще не было добавлено.