【发布时间】:2013-03-20 07:01:31
【问题描述】:
我在函数外部声明了一个变量,如下所示:
var s: Int = 0
通过它是这样的:
def function(s: Int): Boolean={
s += 1
return true
}
但在我的一生中,“s +=”下的错误行不会消失。我什么都试过了。顺便说一句,我是 Scala 新手。
【问题讨论】:
-
为什么要增加函数中的值?只需返回新值。您正在重新分配您传入的值。
-
我正在用价值做其他事情。这只是我的问题的一个小例子。
-
你不能这样做,你真的在调用
s = s + 1,所以你只是将你的本地指针重新分配给一个新变量。 -
@JL 在这种特殊情况中你所能做的就是将 int 包装到 MutableInt 容器中,该容器具有操作增量,然后将其传递给函数并调用该方法。您可能会认为这是一个很大的开销,而且确实如此:您直接违背了语言概念。
标签: scala parameter-passing immutability