Scala介绍
Scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。 Scala是纯粹的面向对象的语言。java虽然是面向对象的语言,但是它不是纯粹的,因为java的基本数据类型不是类,并且在java中还有静态成员变量和静态方法。相反,scala是纯粹面向对象的,每个值都是对象,每个操作都是方法调用。 Scala也是一个成熟的函数式语言。函数式编程有两个指导思想:①函数是头等值,也就是说函数也是值,并且和其他类型(如整数、字符串等)处于同一地位,函数可以被当作参数传递,也可以被当作返回值返回,还可以在函数中定义函数等等;②程序的操作应该把输入值映射为输出值而不是就地修改,也就是说函数调用不应产生副作用,虽然函数式编程语言鼓励使用“无副作用”的方法,但是scala并不强制你必须这么做。scala允许你使用指令式的编程风格,但是随着你对scala的深入了解,你可能会更倾向于一种更为函数式的编程风格。向函数式编程转变,你就应该尽量去使用val、不可变对象、无副作用方法,而不是var、可变对象、有副作用方法。要明白的是,从指令式编程向函数式编程的转变会很困难,因此你要做好充分的准备,并不断的努力。 Scala**运行于JVM之上**,并且它可以访问任何的java类库并且与java框架进行互操作,Scala也大量重用了java类型和类库。
Scala安装
从官方网站下载scala-2.11.7.tgz或更高版本。 下载地址:http://www.scala-lang.org/ 下载
wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz解压安装
tar zxvf scala-2.11.7.tgz -C /usr/local/设置环境变量
vim /etc/profile添加以下内容 export SCALA_HOME=/usr/local/scala-2.11.7 export PATH=$PATH:$SCALA_HOME/bin更新设置
source /etc/profileScala解释器
安装好Scala并配置好PATH环境变量之后,就可以在终端中输入“scala”命令打开scala解释器。在其中,你可以像使用shell一样,使用TAB补全、Ctrl+r搜索、上下方向键切换历史命令等。退出scala解释器,可以使用命令:“:q”或者“:quit” 由于解释器是输入一句执行一句,因此也常称为REPL,REPL一次只能看到一行代码。
第一个Scala程序
Scala程序如下所示:
object Hello { def main(args: Array[String]) { println("hello scala.") } }Scala编译运行
Scala编译器scalac会将scala代码编译为jvm可以运行的字节码,然后就可以在jvm上执行了。假设有一个Hello.scala 文件,我们就可以使用 scalac Hello.scala 编译,然后使用 scala Hello 运行。当然也可以使用java工具来运行,但需要在classpath里指定scala-library.jar。 编辑文件
vim Hello.scala 内容如下所示: object Hello { def main(args: Array[String]) { println("hello scala.") } }编译
scalac Hello.scala生成Hello.class Hello$.class文件。 运行
scala Hello可以看到输出结果
java -classpath /usr/local/scala-2.11.7/lib/scala-library.jar:. Hello Scala特点在Scala中,语句之后的;是可选的,这根据你的喜好。当有多个语句在同一行时,必须加上分号,但不建议把多个语句放在一行。 在scala中,建议使用2个空格作为代码缩进,不过我咋喜欢一个tab呢 ⊙﹏⊙! 在scala中,符号“_”相当于java中的通配符“*”。 scala类似于c++、java,索引也是从0开始,但元组是个例外,它从1开始。