将会' val'产生可变数据?

时间:2015-12-02 09:02:08

标签: scala

在REPL中输入以下命令

scala> val p = 1 << 1
p: Int = 2

再次

scala> val p = 1 << 2
p: Int = 4

我的问题是,我读到val是不可变的。但在这种情况下,价值正在改变。那么有人可以告诉我为什么。这真的是变异的一个例子。请帮忙

2 个答案:

答案 0 :(得分:6)

此行为仅出现在REPL中。如果您尝试在Scala代码中定义两次val,则会出现编译错误。在REPL中,val的第二个定义只是阴影p的前一个值

答案 1 :(得分:0)

是的,正如nyavro所说,在REPL中你可以覆盖vals。只要认为在IDE中输入一个值你可以修复的错误,在REPL中你会如何解决?你需要关闭会话吗?