Scala入门-大数据云计算下的开发语言

Scala编程语言抓住了不少开发者的眼球。若是你粗略浏览Scala的网站,你会以为Scala是一种纯粹的 面向对象编程语言,而又无缝地结合了命令式编程和 函数式编程风格。Christopher Diggins认为:编程

不过久以前编程语言还能够毫无疑意地归类成“命令式”或者“函数式”或者“面向对象”。Scala表明了一个新的语言品种,它抹平了这些人为划分的界限。并发

根据David Rupp在博客中的说法,Scala多是下一代Java。这么高的评价让人不由想看看它究竟是什么东西。框架

Scala有几项关键特性代表了它的面向对象的本质。例如,Scala中的每一个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。另外,类能够被子类化,并且Scala还提供了基于mixin的组合(mixin-based composition)。编程语言

与只支持单继承的语言相比,Scala具备更普遍意义上的类重用。Scala容许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差别之处)”。Scala称之为mixin类组合。函数式编程

Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、局部套用(Currying)、 嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。函数

Scala是静态类型的,这就容许它提供 泛型类、 内部类、甚至 多态方法(Polymorphic Method)。另外值得一提的是,Scala被特地设计成可以与 Java和 .NET互操做。Scala当前版本还不能在.NET上运行(虽然上一版能够-_-b),但按照计划未来能够在.NET上运行。工具

Scala能够与Java互操做。它用scalac这个 编译器把 源文件编译成Java的 class文件(即在JVM上运行的 字节码)。你能够从Scala中调用全部的Java类库,也一样能够从Java应用程序中调用Scala的代码。用David Rupp的话来讲,测试

它也能够访问现存的数之不尽的Java类库,这让(潜在地)迁移到Scala更加容易。网站

这让Scala得以使用为Java1.四、5.0或者6.0编写的巨量的Java类库和框架,Scala会常常性地针对这几个版本的Java进行测试。Scala可能也能够在更早版本的Java上运行,但没有通过正式的测试。Scala以BSD许可发布,而且数年前就已经被认为至关稳定了。线程

说了这么多,咱们尚未回答一个问题:“为何我要使用Scala?”Scala的设计始终贯穿着一个理念:

创造一种更好地支持组件的语言。(《The Scala Programming Language》,Donna Malayeri)

也就是说软件应该由可重用的部件构造而成。Scala旨在提供一种编程语言,可以统一和通常化分别来自 面向对象和函数式两种不一样风格的关键概念。

藉着这个目标与设计,Scala得以提供一些出众的特性,包括:

* 面向对象风格

* 函数式风格

* 更高层的并发模型

Scala把Erlang风格的基于actor的并发带进了 JVM。开发者能够利用Scala的actor模型在JVM上设计具伸缩性的并发应用程序,它会自动得到 多核心处理器带来的优点,而没必要依照复杂的Java线程模型来编写程序。

* 轻量级的函数语法

o 高阶

o 嵌套

o 局部套用(Currying)

o 匿名

* 与XML集成

o 可在Scala程序中直接书写XML

o 可将XML转换成Scala类

* 与Java无缝地互操做

Scala的风格和特性已经吸引了大量的开发者,好比Debasish Ghosh就以为:

我已经把玩了Scala好一阵子,能够说我绝对享受这个语言的创新之处。

总而言之,Scala是一种函数式 面向对象语言,它融汇了许多史无前例的特性,而同时又运行于JVM之上。随着开发者对Scala的兴趣日增,以及愈来愈多的工具支持,无疑Scala语言将成为你手上一件必不可少的工具。

内容详情:https://www.roncoo.com/course/view/bbd372aa876e4d7aa37e533a45bf7bf2

相关文章
相关标签/搜索