Scala:融合面向对象与函数式编程的混合语言
1. Scala 简介
当 Sun Microsystems 发布 Java 时,Martin Odersky 正在进行函数式编程的深入理论研究。他意识到 Java 改变了语言开发的格局,于是创造了 Scala,这是一种将函数式特性引入 Java 基础设施的语言。Scala 利用 JVM 及其库,允许程序员随意使用面向对象或函数式方法,是一种真正的混合语言。早期采用 Scala 的公司包括 Twitter 和 Foursquare。
2. 函数式编程风格
在设计 Scala 时,Martin Odersky 大胆地将面向对象和函数式这两种不同的编程范式结合在一起。函数式编程风格有两个关键方面:函数的纯度和高阶函数的使用。
2.1 函数纯度
纯度意味着函数没有副作用。只要输入相同,函数的输出就可预测地相同。纯函数不受外部影响,也不影响外部,并且不会改变任何值。函数纯度有两个好处:一是更容易理解和证明纯函数的正确性;二是纯函数促进引用透明性,可轻松重新排列和排序以在多线程上执行,便于在多核处理器上进行并发编程。Scala 不强制要求纯度,但可以通过搜索 vars 轻松检测可变变量的使用位置。在 Scala 中,应尽可能使用不可变性,特别是不可变的 vals 。
2.2 高阶函数
函数式风格的另一个方面是使用高阶函数,即把函数当作一等公民。这允许我们将函数作为参数传递给其他函数、在函数内部创建函数以及从函数中返回函数,进而实现函数组合。Scala 的优点之一是我们可以根据需要或合适的情况同
超级会员免费看
订阅专栏 解锁全文
1万+

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



