1 / 28
文档名称:

Scala详细总结(精辟版 ).docx

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

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

分享

预览

Scala详细总结(精辟版 ).docx

上传人:在水一方 2018/9/30 文件大小: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

最近更新

快中子增殖堆及配套产品产业分析报告 79页

菌种市场分析及竞争策略分析报告 84页

酒吧市场分析及竞争策略分析报告 69页

2024年铬黄项目资金需求报告代可行性研究报告.. 51页

降解薄膜市场分析及竞争策略分析报告 84页

监理市场分析及竞争策略分析报告 81页

加速度传感器产业分析报告 86页

2024年高性能特种合金材料项目资金筹措计划书.. 60页

2024年高速、超硬精密刀具项目资金申请报告代.. 70页

2024年高端小型车项目资金筹措计划书代可行性.. 74页

2024年钢管项目投资申请报告代可行性研究报告.. 69页

2024年妇幼保健服务项目资金需求报告代可行性.. 65页

2024年分级设备地矿勘测设备:钻探机项目资金.. 63页

2024年房企项目资金需求报告代可行性研究报告.. 64页

有关高中数学老师年度工作计划集锦 130页

新编小学语文课程老师教学笔记 【分享】 90页

描写人物语言的句子6篇 75页

高中毕业典礼学生代表发言稿3分钟合集五篇 90页

春季小学数学老师下半年个人工作计划汇集 112页

2024年对苯二酚项目资金筹措计划书代可行性研.. 60页

2024年电阻箱项目资金筹措计划书代可行性研究.. 56页

2024年电子地图项目投资申请报告代可行性研究.. 72页

2024年电力和热力项目资金申请报告代可行性研.. 75页

幼儿园中班科学教案《多彩的树叶》及教学反思.. 15页

一位老师的作文600字(通用10篇) 11页

西游记读后感600字小学(8篇) 10页

三年级数学公开课教案汇编7篇 17页

2022-2023学年全国初中八年级上物理人教版同步.. 13页

脚手架和操作平台减员控员专项施工方案 13页

ICP备案授权书范例 1页