Scala 函数式编程:闭包、部分应用函数与更多
1. 闭包的概念与应用
闭包是 Scala 函数式编程中的一个强大特性。为了测试闭包相关代码,可将其保存为名为 ClosureExample.scala 的文件,然后进行编译和运行。运行代码后,输出结果如下:
Hello, Al
Hola, Lorenzo
如果你从 Java 或其他面向对象编程语言转向 Scala,可能会疑惑这是如何实现的。在第一次运行时, sayHello 方法在 Foo 类的 exec 方法中引用了 hello 变量(此时 hello 已不在作用域内),而在第二次运行时,它还能捕捉到 hello 变量的变化(从 Hello 变为 Hola )。这是因为 Scala 支持闭包功能。
在 sayHello 方法中有两个自由变量: name 和 hello 。 name 是函数的形式参数,而 hello 不是形式参数,它是对外部作用域中变量的引用。因此,Scala 编译器会创建一个包含 hello 的闭包。
下面是闭包的一些定义和特点:
-
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



