在http://www.artima.com/pins1ed/builtin-control-structures.html#7.7,我看到以下代码
val a = 1;
{
val a = 2
println(a)
}
println(a)
它说这里需要分号,但为什么呢?
根据http://www.artima.com/pins1ed/classes-and-objects.html#4.2的规则,我认为应该自动添加分号,因为
val a = 1
可以是法律声明。- 下一行以 开头
{
,我认为这可以作为法律声明的开始。(因为如果我添加分号并将前两行分成两个语句,则不会出现编译错误。) val a = 1
不在括号或方括号中。