首页 > 解决方案 > "()" 代表什么: val f = {() => x += 1}

问题描述

我的问题是关于 Scala 函数:

var x = 1
val f = {() => x += 1}

很明显,函数文字是否如下所示:

val f = (x:Int)=>x+1

但它()代表的是什么:

val f = {() => x += 1}

我是 Scala 的新手。我已经阅读了 Scala 书中的函数章节,但仍然无法理解()这里的含义。

标签: scala

解决方案


tl; dr这只是一个函数的空参数列表。

这是一个空的参数列表。这意味着您没有向函数传递任何参数。所以通常这种函数不会消耗任何值,但会在调用时提供值。

你的情况很特殊。变量x来自外部范围并绑定到您的函数,因此它成为闭包。每次调用f它都会改变x.


推荐阅读