1 / 28
文档名称:

Scala详细总结精辟版++.docx

格式:docx   大小:575KB   页数:28页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Scala详细总结精辟版++.docx

上传人:85872037 2018/5/13 文件大小:575 KB

下载得到文件列表

Scala详细总结精辟版++.docx

相关文档

文档介绍

文档介绍:Scala总结
--2015-1-19 12:33:54
本文档针对scala ,由于scala目前发展迅速,因此可能会和其他版本的不同。
===概述
scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
scala是纯粹的面向对象的语言。java虽然是面向对象的语言,但是它不是纯粹的,因为java的基本数据类型不是类,并且在java中还有静态成员变量和静态方法。相反,scala是纯粹面向对象的,每个值都是对象,每个操作都是方法调用。
scala也是一个成熟的函数式语言。函数式编程有两个指导思想:①函数是头等值,也就是说函数也是值,并且和其他类型(如整数、字符串等)处于同一地位,函数可以被当作参数传递,也可以被当作返回值返回,还可以在函数中定义函数等等;②程序的操作应该把输入值映射为输出值而不是就地修改,也就是说函数调用不应产生副作用,虽然函数式编程语言鼓励使用“无副作用”的方法,但是scala并不强制你必须这么做。scala允许你使用指令式的编程风格,但是随着你对scala的深入了解,你可能会更倾向于一种更为函数式的编程风格。向函数式编程转变,你就应该尽量去使用val、不可变对象、无副作用方法,而不是var、可变对象、有副作用方法。要明白的是,从指令式编程向函数式编程的转变会很困难,因此你要做好充分的准备,并不断的努力。
scala运行于JVM之上,并且它可以访问任何的java类库并且与java框架进行互操作,scala也大量重用了java类型和类库。
第一个scala程序:
object ScalaTest {
def main(args: Array[String]) {
println("hello scala.")
}
}
===scala解释器
安装好scala并配置好PATH环境变量之后,就可以在终端中输入“scala”命令打开scala解释器。在其中,你可以像使用shell一样,使用TAB补全、Ctrl+r搜索、上下方向键切换历史命令等等。退出scala解释器,可以使用命令:“:q”或者“:quit”。
由于解释器是输入一句执行一句,因此也常称为REPL。REPL一次只能看到一行代码,因此如果你要在其中粘贴代码段的话,可能会出现问题,这时你可以使用粘贴模式,键入如下语句:
:paste
然后把代码粘贴进去,再按下Ctrl+d,这样REPL就会把代码段当作一个整体来分析。
===scala作为脚本运行
scala代码也可以作为脚本运行,只要你设置好代码文件的shell前导词(preamble),并将代码文件设置为可执行。如下:
#!/usr/bin/env scala
println("这是scala脚本")
设置代码文件为可执行,即可执行之啦。
scala脚本的命令行参数保存在名为args的数组中,你可以使用args获取命令行输入的程序参数。
===scala编译运行
scala编译器scalac会将scala代码编译为jvm可以运行的字节码,然后就可以在jvm上执行了。 文件,我们就可以使用 scalac 编译,然后使用 scala Hello 运行。当然也可以使用java工具来运行,但需要在classpath里指定scala-。对于classpath,在Unix家族的系统上,类路径的各个项目由冒号“:”分隔,在MS Windows系统上,它们由分号“;”分隔。例如,在linux上你可以输入这样的命令来运行(注意classpath最后加一个“.”):
java -classpath /usr/local/scala--:. Hello
===scala IDE开发环境
你可以使用 eclipse 或者 intellij idea 作为scala的IDE开发环境,但都需要安装scala插件才行。下面分别介绍这两种方式:
eclipse开发环境配置:
scala ide for eclipse(下载地址:http://scala-)中集成了scala插件,你可以直接使用它进行开发,不过它包含的可能不是我们想要的scala版本,因此,还是在该网站上下载对应的scala插件,插在eclipse上,这样更好啊。
我们先安装eclipse juno,然后下载eclipse juno以及scala sdk插件升级包:update-。将插件解压缩,将 features 和 plugins