我在函数外声明了一个变量,如下所示:
var s: Int = 0
像这样通过它:
def function(s: Int): Boolean={
s += 1
return true
}
但在我的一生中,错误行不会在“s + =”下消失。我尝试了一切。顺便说一句,我是 Scala 的新手。
最佳答案
首先,我重申一下我的警告:下面的解决方案既晦涩又低效 ,如果可能的话,尽量坚持使用 val
是。
implicit class MutableInt(var value: Int) {
def inc() = { value+=1 }
}
def function(s: MutableInt): Boolean={
s.inc() // parentheses here to denote that method has side effects
return true
}
这是正在运行的代码:
scala> val x: MutableInt = 0
x: MutableInt = MutableInt@44e70ff
scala> function(x)
res0: Boolean = true
scala> x.value
res1: Int = 1
关于scala - 如何递增传递给 Scala 函数的整数变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15705585/