我的问题是关于 Scala 函数的:
var x = 1
val f = {() => x += 1}
如果函数字面量看起来像这样就很清楚了:
val f = (x:Int)=>x+1
但是 ()
代表什么:
val f = {() => x += 1}
我是 Scala 的新手。
我已经把Scala的书里的函数章节都看了一遍,还是不明白这里的()
是什么意思。
最佳答案
tl;dr 这只是一个函数的空参数列表。
这是一个空参数列表。这意味着您没有将任何参数传递给函数。所以通常这种函数不会消耗任何值,但会在调用时提供值。
您的情况很特殊。变量 x
来自外部范围并绑定(bind)到您的函数,因此它成为闭包。每次调用 f
时,它都会更改 x
的值。
关于scala - : val f = {() => x += 1}中的 "()"代表什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55722686/