Scala

Scala

原名: Scala | 语言: 英语
1990 纪录 36分钟 6.5

导演

Michael B. Clifford

详细剧情

Scala(发音为/ˈskɑːlə, ˈskeɪlə/)是一门多范式的编程语言,设计初衷是要整合面向对象编程和函数式编程的各种特性。

== 平台和许可证 ==
Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。它也能运行于CLDC配置的Java ME中。曾经有过另一.NET平台的实现,不过该版本已被放弃。
Scala的编译模型(独立编译,动态类加载)与Java和C#一样,所以Scala代码可以调用Java类库(对于.NET实现则可调用.NET类库)。
Scala套件包括编译器和类库,以BSD许可证发布。

== 历史 ==
洛桑联邦理工学院的Martin Odersky于2001年基于Funnel的工作开始设计Scala。Funnel是把函数式编程思想和佩特里网相结合的一种编程语言。 Odersky之前工作于Java泛型和javac。Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。
Scala 2.8的特性包括重写的Scala容器库、命名参数和默认参数、包对象,以及Continuation.
2012年1月,发布版本2.9.1。
2012年4月,发布版本2.9.2。

== 使用Scala的软件 ==
2009年4月,Twitter宣布他们已经把大部分后端程式从Ruby迁移到Scala,其余部分也打算要迁移。
Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。
瑞银集团把Scala用于一般产品中。
Coursera把Scala作为服务器语言使用。
多邻国,一个线上的免费语言学习平台,使用 Scala编写。

== 特性 ==

=== 支持的编程范式 ===

==== 面向对象特性 ====
Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。类抽象机制的扩展有两种途径。一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。

==== 函数式编程 ====
Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。
更进一步,程序员可以利用Scala的模式匹配,编写类似正则表达式的代码处理XML数据。在这些情形中,列表推导式功能对编写公式化查询非常有用。
由于JVM不支持尾调用,Scala也不能完全支持尾调用最佳化。不过,Scala编译器可以把某些简单的尾递归最佳化成循环。
以下代码以函数式风格实现了快速排序算法,可以与Erlang快速排序的例子做个比较:

=== 静态类型 ===
Scala具备类型系统…

主要演员

热门推荐

人生七年5电影海报

人生七年5

1991 7.6

纪录

操电影海报

2006 6.4

纪录

战争生活电影海报

战争生活

2002 6.1

纪录

公众演讲电影海报

公众演讲

2011 7.0

纪录

约翰·福特执导电影海报

约翰·福特执导

1971 6.9

纪录

极速下载的命运电影海报

极速下载的命运

2013 6.5

纪录

诱惑与遗弃电影海报

诱惑与遗弃

2013 6.2

纪录

92班电影海报

92班

2013 7.1

纪录

冠军电影海报

冠军

2015 6.5

纪录

马龙,听我说电影海报

马龙,听我说

2015 7.5

纪录

塑料海洋电影海报

塑料海洋

2016 7.6

纪录

麦昆电影海报

麦昆

2018 7.5

纪录

天行者遗产电影海报

天行者遗产

2020 7.7

纪录

Making "The Matrix"电影海报

Making "The Matrix"

1999 7.3

纪录

我的妈妈,简电影海报

我的妈妈,简

2025 8.0

纪录