Scala:无法将类方法参数标记为var / val

时间:2017-02-07 21:40:15

标签: scala immutability

class Time(var h: Int, val m: Int) {
  def before(val other: Time) = { //compile error due to keyword val
    (this.h < other.h) ||  (this.m < other.m)
  }
}

如何将方法中的参数其他标记为 var / val ?如果我在其他之前移除 val ,则会成功编译。

1 个答案:

答案 0 :(得分:5)

您无法修改对other的引用,因为它是函数的参数。

def before(val other: Time) = ...

等同于(如果 legal

def before(other: Time) = ...

如果你想要一个var,只需在函数中创建它:

def before(other: Time) = {
  var otherVar = other
  ...
}