我试图在 Scala 中实现闭包示例,来自 Neal Ford 在 Groovy 中的功能性思维演示文稿。请参阅幻灯片 # 43 和 44 https://sea.ucar.edu/sites/default/files/Functional_Thinking.pdf
def makeCounter : Unit = {
var localVar = 0
return { localVar += 1 }
}
此代码返回一个匿名函数。现在我想通过调用这个匿名函数来增加 localVar。
我有两个问题:
1. 如何调用匿名函数?
2.调用后如何检查localVar的值是否增加?
首先我尝试了这个 -
val c1 = makeCounter()。它抛出以下错误:
错误:单元类型的makeCounter不接受参数
然后我尝试了这个。
val c1 = makeCounter
这没有给出任何错误。仅打印 c1: Unit = ()。
然后,
print(c1) 打印了 (),而 c1() 给出了同样的错误。