1.5 致编程语言爱好者

Scala的设计目标之一,即是整合函数式和面向对象编程为一个语言(详见1.1.4节)。 Scala是JVM上第一个将函数式和面向对象编程融合为一的静态类型语言。 Scala在面向对象编程方面做出了一个创新(如前所述),使你能够创建更好的组件抽象。

Scala继承了过去和现在的多种编程语言的理念。 首先,Scala采用Java/C#的语法,同时支持JVM和Common Language Runtime(CLR)。 也有些人认为,Scala的语法与Java/C#的语法相比,不同点比相同点更多一些。 你在前面看到一些Scala代码,所以可能有此判断。 在Scala中,每个值都是一个对象,每个操作都是一个方法调用,Smalltalk影响了这种纯面向对象模型。 Scala也支持通用嵌套和统一访问原则(如下面清单所示),这分别借鉴自Algol/Simula和Eiffel。 在Scala中,变量和没有参数的方法的访问方式是一样的。

清单1.8 Scala中的通用访问原则

  1. class UAPExample {
  2. val someField = "hi"
  3. def someMethod = "there"
  4. }
  5. val o = new UAPExample
  6. o.someField
  7. o.someMethod

这里,你通过UAPExample类的引用,用同样的方式访问了一个域和一个方法。对这个类的调用者来说,二者是透明的。

Scala的函数式编程架构与metalanguage(ML)类型的语言比较类似。Scala的Actor库受Erlang的Actor模型的影响较大。

编译宏(COMPLE MACROS)

Scala 2.10 release版本添加了对编译时宏(compile-tile macros)的试验性支持,允许编程者编写宏定义:编译器在编译期透明的加载函数 。 这为Scala实现了编译时元编程的概念。

基于此,你可以很清楚的意识到Scala是一门拥有丰富的特性和功能的语言。Scala不会让你失望,你会深深的爱上她。

链接