Scala 是一门多范式的编程语言,类似Java和Groovy的编程语言,设计初衷是实现可伸缩的语言 、并集成面向对象编程和函数式编程的各种特性。

Scala 运行在Java虚拟机上,并兼容现有的Java程序。Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库

Object-Oriented Meets Functional,Have the best of both worlds. Construct elegant class hierarchies for maximum code reuse and extensibility, implement their behavior using higher-order functions. Or anything in-between.

联邦理工学院洛桑(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 官网:http://www.scala-lang.org

 

Scala 特性

 

 

 

Scala 安装

Scala 语言可以运行在Window、Linux、Unix、 Mac OS X等系统上,跟Java非常类似,运行在JVM虚拟机上,是跨平台的语言。

Scala是基于java之上,大量使用java的类库和变量,必须使用Scala之前必须先安装 Java(>1.5版本)

下载安装请见官网: http://www.scala-lang.org/download/

Mac OS X 安装步骤:

1. 下载 scala-2.12.3.tgz

2. 解压

tar zxvf scala-2.12.3.tgz
cp -r scala-2.12.3 /opt/

3. 配置

vim  /etc/profile

添加如下内容:

SCALA_HOME=/opt/scala-2.12.3
export PATH=$SCALA_HOME/bin:$PATH

保存,执行命令,使其生效:

source /etc/profile 

 

4. 验证

$ scala
Welcome to Scala 2.12.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_121).
Type in expressions for evaluation. Or try :help.

 

Scala 语法

Scala 跟Java语法很相近,Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的,可加可不加,不是强制的

我们可以认为 Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递。接下来我们来理解下,类,对象,方法,实例变量的概念:

  • 对象 - 对象有属性和行为。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。对象是一个类的实例。

  • 类 - 类是对象的抽象,而对象是类的具体实例。

  • 方法 - 方法描述的基本的行为,一个类可以包含多个方法。

  • 字段 - 每个对象都有它唯一的实例变量集合,即字段。对象的属性通过给字段赋值来创建。

 

 

Scala 使用

1. 命令行编程

$ scala

scala> println("hello mimvp.com")
hello mimvp.com

scala> 2000 + 16
res1: Int = 2016

scala> "mimvp" + ".com"
res4: String = mimvp.com

 

2. 文件编译执行

vim  hello.scala

// hello.scala
//
// mimvp.com
// 2017.07.26


object HelloMimvp {
    def main(args: Array[String]){
        println("hello mimvp.com")
        println(2000 + 16)
        println("mimvp" + ".com")
    }
}

执行命令:

$ scala hello.scala 
hello mimvp.com
2016
mimvp.com

 

 

 

Scala 代理设置

 

 

 

 

 

 

 

参考推荐:

Groovy 安装与开发

Delphi 安装与开发

Perl 安装与开发

Ruby 安装与开发

Python scrapy 安装与开发

Python requests 安装与开发

Python pyspider 安装与开发

Python3 urllib 用法详解

PhantomJS 安装与开发

Node.js 安装与开发