Scala特点

Scala 有交互式命令行(REPL), 可以在上面快速的试各种语法和代码。这对学习新特性,或者实验新想法非常有用。Scala 特点如下:

一致性: 尽管 Scala 融合了静态类型系统、面向对象、函数式编程等语言特性,但却很少能看出融合的痕迹。Scala 是我见到融合最多语言特性而又不显得杂乱的编程语言之一。

类型安全: Scala 创始人是教授,他先带领创建了 Java 5 编译器,而后觉得 Java 有太多羁绊而发明了 Scala。 Scala 编译器和类型系统非常强大,它的目标是尽量把软件错误消灭在编写过程中。Scala 类型系统是图灵完备的,甚至可以在编译期间解决问题。

面向对象: Scala 是面向对象的编程语言,所有的变量和方法都封装在对象中,可以把信息封装起来供外部使用。

函数式编程: Scala 同时又是函数式编程语言,函数可以独立存在,可以定义一个函数作为另一个函数的返回值,也可以接受函数作为函数的参数。这给组合函数带来了很大的便利。如何把面向对象编程形容成搭积木的话,函数式编程就像拼线条,更灵活和更有创意。

静态类型: Scala 是具备类型系统,通过编译时的检查,保证代码的安全性和一致性。类型系统具体支持以下特性:泛型类,型变注释(Variance Annotation),类型继承结构的上限和下限,把类别和抽象类型作为对象成员,复合类型,引用自己时显式指定类型,视图,多态方法。

异步编程: 由于函数式编程提倡变量不可变,使异步编程变得非常容易。同时 Scala 提供的 Future, 和 akka 类库,使得异步编程变得非常容易。

基于 JVM: Scala 会被编译成为 jvm bytecode,所以 Scala 能无缝集成已有的 Java 类库。你可以非常自然的使用已经存在的非常庞大且稳定的 Java 类库,比如小巧好用的 apache.common.*, 或者 Java 上的各种工具类库。

因为如此众多特性,用 Scala 可以优雅地编写简洁的代码,同时又能减少很多低级错误;能快速进行开发,又能保证系统性能、团队协作和长期维护。