Scala 是 Scalable Language 的简写,是一门多范式的编程语言

联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计Scala。

Funnel是把函数式编程思想和Petri网相结合的一种编程语言。

Odersky先前的工作是Generic Java和javac(Sun Java编译器)。Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。

截至2009年9月,最新版本是版本2.7.6 。Scala 2.8预计的特性包括重写的Scala类库(Scala collections library)、方法的命名参数和默认参数、包对象(package object),以及Continuation。

2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala,其余部分也打算要迁移。此外, Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。


Scala 特性

面向对象特性

Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。

类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。

函数式编程

Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。

更进一步,程序员可以利用Scala的模式匹配,编写类似正则表达式的代码处理XML数据。

静态类型

Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:

  • 泛型类
  • 协变和逆变
  • 标注
  • 类型参数的上下限约束
  • 把类别和抽象类型作为对象成员
  • 复合类型
  • 引用自己时显式指定类型
  • 视图
  • 多态方法

扩展性

Scala的设计秉承一项事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:

  • 任何方法可用作前缀或后缀操作符
  • 可以根据预期类型自动构造闭包。

并发性

Scala使用Actor作为其并发模型,Actor是类似线程的实体,通过邮箱发收消息。Actor可以复用线程,因此可以在程序中可以使用数百万个Actor,而线程只能创建数千个。在2.10之后的版本中,使用Akka作为其默认Actor实现。

 


Mac OS X 和 Linux 上安装 Scala

第一步:Java 设置

确保你本地已经安装了 JDK 1.5 以上版本,并且设置了 JAVA_HOME 环境变量及 JDK 的 bin 目录。

我们可以使用以下命令查看是否安装了 Java:

$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
$

接着,我们可以查看是否安装了 Java 编译器。输入以下命令查看:

$ javac -version
javac 1.8.0_31
$

如果还未安装,可以参考我们的Java 开发环境配置

接下来,我们可以从 Scala 官网地址 http://www.scala-lang.org/downloads 下载 Scala 二进制包,本教程我们将下载 2.11.7版本,如下图所示:

解压缩文件包,可将其移动至/usr/local/share下:

mv scala-2.11.7 scala                   # 重命名 Scala 目录
mv /download/scalapath /usr/local/share # 下载目录需要按你实际的下载路径

修改环境变量,如果不是管理员可使用 sudo 进入管理员权限,修改配置文件profile:

vim /etc/profile



sudo vim /etc/profile

在文件的末尾加入:

export PATH="$PATH:/usr/local/share/scala/bin"

:wq!保存退出,重启终端,执行 scala 命令,输出以下信息,表示安装成功:

$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.

注意:在编译的时候,如果有中文会出现乱码现象,解决方法查看:Scala 中文乱码解决


window 上安装 Scala

第一步:Java 设置

检测方法前文已说明,这里不再描述。

如果还未安装,可以参考我们的Java 开发环境配置

接下来,我们可以从 Scala 官网地址 http://www.scala-lang.org/downloads 下载 Scala 二进制包(页面底部),本教程我们将下载 2.11.7版本,如下图所示:

下载后,双击 msi 文件,一步步安装即可,安装过程你可以使用默认的安装目录。

安装好scala后,系统会自动提示,单击 finish,完成安装。

右击我的电脑,单击”属性”,进入如图所示页面。下面开始配置环境变量,右击【我的电脑】–【属性】–【高级系统设置】–【环境变量】,如图:

设置 SCALA_HOME 变量:单击新建,在变量名栏输入:SCALA_HOME: 变量值一栏输入:D:\Program Files(x86)\scala 也就是 Scala 的安装目录,根据个人情况有所不同,如果安装在 C 盘,将 D 改成 C 即可。

设置 Path 变量:找到系统变量下的”Path”如图,单击编辑。在”变量值”一栏的最前面添加如下的路径: %SCALA_HOME%\bin;%SCALA_HOME%\jre\bin;

注意:后面的分号  不要漏掉。

设置 Classpath 变量:找到找到系统变量下的”Classpath”如图,单击编辑,如没有,则单击”新建”:

  • “变量名”:ClassPath
  • “变量值”:.;%SCALA_HOME%\bin;%SCALA_HOME%\lib\dt.jar;%SCALA_HOME%\lib\tools.jar.;

注意:“变量值”最前面的 .; 不要漏掉。最后单击确定即可。

检查环境变量是否设置好了:调出”cmd”检查。单击 【开始】,在输入框中输入cmd,然后”回车”,输入 scala,然后回车,如环境变量设置ok,你应该能看到这些信息。

以下列出了不同系统放置的目录(可作为参考):

系统环境 变量 值 (举例)
Unix $SCALA_HOME /usr/local/share/scala
$PATH $PATH:$SCALA_HOME/bin
Windows %SCALA_HOME% c:\Progra~1\Scala
%PATH% %PATH%;%SCALA_HOME%\bin