首页 理论教育 Scala-特性-云计算原理与技术

Scala-特性-云计算原理与技术

时间:2023-10-29 理论教育 版权反馈
【摘要】:Scala具有以下特性:1)面向对象Scala是一种纯面向对象的语言,每一个值都是对象。6)静态类型Scala具备类型系统的特点,通过编译检查保证代码的安全性和一致性。7)扩展性Scala的设计承认一个事实,即在实践中,某个领域特定的应用程序开发需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式无缝添加新的语言结构。内置的Scala库SUnit已经不赞成使用,将会在2.8.0版中移除。

Scala-特性-云计算原理与技术

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语言将成为一件不可或缺的工具。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈