在REPL中输入以下命令
scala> val p = 1 << 1
p: Int = 2
再次
scala> val p = 1 << 2
p: Int = 4
我的问题是,我读到val是不可变的。但在这种情况下,价值正在改变。那么有人可以告诉我为什么。这真的是变异的一个例子。请帮忙
答案 0 :(得分:6)
此行为仅出现在REPL中。如果您尝试在Scala代码中定义两次val,则会出现编译错误。在REPL中,val的第二个定义只是阴影p的前一个值
答案 1 :(得分:0)
是的,正如nyavro所说,在REPL中你可以覆盖vals。只要认为在IDE中输入一个值你可以修复的错误,在REPL中你会如何解决?你需要关闭会话吗?