【问题标题】:will 'val' produce mutable data? [duplicate]'val' 会产生可变数据吗? [复制]
【发布时间】:2015-12-02 09:02:08
【问题描述】:

在 REPL 中当我们键入以下命令时

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

再次

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

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

【问题讨论】:

标签: scala


【解决方案1】:

此行为仅出现在 REPL 中。如果您尝试在 Scala 代码中定义 val 两次,您将收到编译错误。在 REPL 中,val 的第二个定义只是隐藏了 p 的先前值

【讨论】:

    【解决方案2】:

    是的,正如nyavro 所说,在 REPL 中您可以覆盖 vals。试想一下,如果在 IDE 中输入错误的值可以修复,那么在 REPL 中您将如何修复?您需要关闭会话吗?

    【讨论】:

    • 谢谢大家的帮助:)
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2019-09-03
    • 2017-06-12
    • 2022-06-15
    • 2020-12-24
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多