Scala 是一种有趣的语言,是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行在JVM上,兼容现有的 Java 程序,集成面向对象编程和函数式编程的各种特性,轻松实现和丰富的 Java 类库互联互通。Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。
优点
优雅与高速
这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,A PI 是否优雅直接影响用户体验。Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。
FP 泛型支持
如果用多了 Spring 中大量的 te mplate 接口 , 你就会觉得 FP 其实还是蛮好用的。而这仅仅是 FP 好处的冰山一角。函数其实就是一个 input -》 output (scala 也是这么表示一个函数的), 没有任何副作用, 与状态无关, 由于这种特性, 所以函数式的编程范式在分布式领域有很多好处对于函数式编程,我的知识实在是皮毛, 但可以这么说, FP 相对与 OO 有哪些优势, Scala 对于 Java 差不多就有哪些优势。正因为 FP 有如此多的优势, 所以 Java8 才引入了 FP. 从某种程度上来说, Java 认可了 Scala 的做法。
Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Func ti on)、局部套用(Currying)、嵌套函数(Nested Func TI on)、序列解读(Sequence Comprehensions)等。Scala是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(Polymorphic Method)。另外值得一提的是,Scala被特意设计成能够与Java和.NET互操作。