x += 1} 如果函数字面量看起来像这样就很清楚了: val f = (x:Int)=>x+1 但是 () 代-6ren">
gpt4 book ai didi

scala - : val f = {() => x += 1}中的 "()"代表什么

转载 作者:行者123 更新时间:2023-12-04 17:53:40 24 4
gpt4 key购买 nike

我的问题是关于 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com