scala - 如何递增传递给 Scala 函数的整数变量?

标签 scala parameter-passing immutability

我在函数外声明了一个变量,如下所示:

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/

相关文章:

php - 将变量传递给 __wakeup()

javascript - 如何将 promise 的返回值分配给变量?

javascript - 使用开发 JavaScript 的函数一一比较两个数组并创建新数组

f# - 在F#中使用StringBuilder是否正确?

scala - akka:使用 akka-typed 实现事件对象模式

scala - 是否可以将 Spark ML CrossValidatorModel 应用到 Flink Streaming 数据流中?

Scala:读取 Enumerator[T] 的一些数据并返回剩余的 Enumerator[T]

swift - 如何在 didSet 之后将数据从 AppDelegate 传递到 ViewController?

java - 在 Java 中总是抛出相同的异常实例

javascript - 使用 Immutable js 合并对象