J L*_*J L 7 scala parameter-passing immutability
我在函数外声明了一个变量,如下所示:
var s: Int = 0
Run Code Online (Sandbox Code Playgroud)
通过它如下:
def function(s: Int): Boolean={
s += 1
return true
}
Run Code Online (Sandbox Code Playgroud)
但是对于我的生活,错误线不会在"s + ="之下消失.我尝试了一切.我是Scala bww的新手.
首先,我将重复我的警告:下面的解决方案既晦涩又低效,如果可能的话请尝试坚持使用values。
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
}
Run Code Online (Sandbox Code Playgroud)
这是正在运行的代码:
scala> val x: MutableInt = 0
x: MutableInt = MutableInt@44e70ff
scala> function(x)
res0: Boolean = true
scala> x.value
res1: Int = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7206 次 |
| 最近记录: |