Scala具有以下特性:
1)面向对象
Scala是一种纯面向对象的语言,每一个值都是对象。对象的数据类型及行为由类和特征(Trait)描述。类抽象机制的扩展有两种途径。一种途径是子类继承,另一种途径是灵活的混入(Mixin)机制。这两种途径能避免多重继承的问题。
2)函数式编程
Scala是一种函数式语言,其函数能当成值来使用。Scala提供了轻量级的语法用来定义匿名函数,支持高阶函数,允许嵌套多层函数和局部套用(Currying),支持柯里化——即把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并返回接受余下的参数且返回结果的新函数的技术。Scala的Case Class及其内置的模式匹配相当于函数式编程语言中常用的代数类型(Algebraic Type)。
3)更高层的并发模型
Scala把Erlang风格的基于Actor的并发带进了JVM。开发者可以利用Scala的Actor模型在JVM上设计具有伸缩性的并发应用程序,自动获得多核心处理器带来的优势,而不必依照复杂的Java线程模型来编写程序。
4)与XML集成
在Scala程序中可以直接书写XML,并将XML转换成Scala类。程序员还可以利用Scala的模式匹配编写类似正则表达式的代码处理XML数据。在这些情形中,顺序容器的推导式(Comprehension)功能对编写公式化查询非常有用。
5)与Java无缝地互操作
可以从Scala中调用所有的Java类库,也可以从Java应用程序中调用Scala的代码。(www.xing528.com)
6)静态类型
Scala具备类型系统的特点,通过编译检查保证代码的安全性和一致性。类型系统支持泛型类、型变注释(Variance Annotation)、类型继承结构的上限和下限,把类别和抽象类型作为对象成员,复合类型,引用自己时显式指定类型、视图、多态方法等。
7)扩展性
Scala的设计承认一个事实,即在实践中,某个领域特定的应用程序开发需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式无缝添加新的语言结构。
任何方法可用作前缀或后缀操作符,可以根据预期类型自动构造闭包。联合使用以上两个特性,可以定义新的语句而无须扩展语法也无须使用宏之类的元编程特性。
8)使用Scala的框架
Lift是一个开源的Web应用框架,提供类似Ruby on Rails的框架。因为Lift使用了Scala,所以Lift应用程序可以使用所有的Java库和Web容器。
9)测试
测试Scala代码的方式有Scala Test、Scala Check,类似于Haskell的Quick Check的一个库specs(一个用于Scala的行为驱动的开发工具库)。内置的Scala库SUnit已经不赞成使用,将会在2.8.0版中移除。
Scala的风格和特性已经吸引了大量的开发者,它是一种函数式面向对象语言,融入许多新特性的同时运行于JVM之上。随着开发者对Scala的兴趣日增,以及越来越多的工具支持,Scala语言将成为一件不可或缺的工具。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。