小编Var*_*nia的帖子

在Scala中返回代码块

我试图在Scala中实现闭包示例,来自Neal Ford在Groovy中的Functional Thinking演示.参见幻灯片#43和44 https://sea.ucar.edu/sites/default/files/Functional_Thinking.pdf

  def makeCounter : Unit = {
var localVar = 0
return { localVar += 1 }
}
Run Code Online (Sandbox Code Playgroud)

此代码返回匿名函数.现在我想通过调用这个匿名函数来增加localVar.

我有两个问题:
1.如何调用匿名函数?
2.调用后,如何检查localVar的值是否增加?

首先我尝试了这个 -
val c1 = makeCounter().它抛出以下错误:
错误:Unit类型的makeCounter不带参数

然后我尝试了这个.
val c1 = makeCounter

这没有给出任何错误.仅打印c1:单位=().

然后,
打印(c1)打印(),而c1()给出相同的错误.

functional-programming scala anonymous-function

0
推荐指数
1
解决办法
1007
查看次数