1 / 13
文档名称:

Scala学习入门.doc

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

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

分享

预览

Scala学习入门.doc

上传人:cby201601 2017/12/28 文件大小:562 KB

下载得到文件列表

Scala学习入门.doc

相关文档

文档介绍

文档介绍:Scala入门
本文源自Michel Schinz和Philipp Haller所写的A Scala Tutorial for Java programmers,由Bearice成中文,dongfengyee(东风雨)整理。
1 简介
本文仅在对 Scala 语言和其编译器进行简要介绍。本文的目的读者是那些已经具有一定编程经验,而想尝试一下 Scala 语言的人们。要阅读本文,你应当具有基础的面向对象编程的概念,尤其是 Java 语言的。
2 第一个Scala例子
作为学****Scala 的第一步,我们将首先写一个标准的 HelloWorld,这个虽然不是很有趣,但是它可以让你对 Scala 有一个最直观的认识而不需要太多关于这个语言的知识。我们的 Hello world 看起来像这样:
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
程序的结构对 Java 程序员来说可能很令人怀念:它由一个 main 函数来接受命令行参数,也就是一个 String 数组。这个函数的唯一一行代码把我们的问候语传递给了一个叫 println 的预定义函数。main 函数不返回值(所以它是一个 procedure method)。所以,也不需要声明返回类型。
对于 Java 程序员比较陌生的是包含了 main 函数的 object 语句。这样的语句定义了一个单例对象:一个有且仅有一个实例的类。object 语句在定义了一个叫 HelloWorld 的类的同时还定义了一个叫 HelloWorld 的实例。这个实例在第一次使用的时候会进行实例化。
聪明的读者可能会发现 main 函数并没有使用 static 修饰符,这是由于静态成员
(方法或者变量)在 Scala 中并不存在。Scala 从不定义静态成员,而通过定义
单例 object 取而代之。
编译实例
我们使用 Scala 编译器“scalac”来编译 Scala 代码。和大多数编译器一样, scalac 接受源文件名和一些选项作为参数,生成一个或者多个目标文件。scala 编译生成的产物就是标准的 Java 类文件。
假设我们吧上述代码保存为文件 ,我们使用下面的命令编译它(大于号“>”表示命令提示符,你不必输入它)
> scalac
文件。其中的一个名为 的文件中定义了一个可以直接使用 scala 命令执行的类。下文中你可以看到这个例子。
运行实例
一旦完成编译,Scala 程序就可以使用 scala 命令执行了。scala 的用法和 java 很相似,并且连选项也大致相同。上面的例子就可以使用下面的命令运行, 这将会产生我们所期望的输出。
> scala -classpath . HelloWorld
Hello, world!
3 Scala与Java交互
Scala 的一个强项在于可以很简单的于已有的 Java 代码交互,所有
中的类都已经被自动导入了,而其他的类需要显式声明导入。
来看看演示代码吧。我们希望对日期进行格式化处理,比如说用法国的格式。 Java 类库定义了一系列很有用的类,比如 Date 和 DateFormat。由于 Scala 于
Java 能够进行很好的交互,我们不需要在 Scala 类库中实现等效的代码,而只
需直接吧 Java 的相关类导入就可以了:
import .{Date, Locale} import import object FrenchDate {
def main(args: Array[String]) {
val now = new Date
val df = getDateInstance(LONG, )
println(df format now)
}
}
Scala的import语句看上去与Java的非常相似,但是它更加强大。你可以使用大括号来导入同一个包里的多个类,就像上面代码中第一行所做的那样。另一个不同点是当导入一个包中所有的类或者符号时,你应该使用下划线(_)而不是星号(*)。这是由于星号在Scala中是一个有效的标识符(例如作为方法名称)。这个例子我们稍后会遇到。
第三行的 import 语句导入了 DataFormat 类中的所有成

最近更新

2024年四川省高职单招职业适应性测试题库及答.. 55页

2024年山东省高职单招职业适应性测试题库及完.. 45页

2024年山东省高职单招职业适应性测试题库(wo.. 45页

2024年河南省高职单招职业适应性测试模拟试题.. 55页

2024年河南省高职单招职业适应性测试题库一套.. 55页

2024年河南省高职单招职业适应性测试题库有解.. 56页

2024年石家庄理工职业学院单招综合素质考试题.. 58页

2024年重庆电子工程职业学院职业倾向性测试题.. 55页

2024年重庆电子工程职业学院职业倾向性测试题.. 55页

一级建造师之一建公路工程实务题库1000道及一.. 302页

一级建造师之一建公路工程实务题库1000道附答.. 301页

一级建造师之一建工程法规题库1000道精品【完.. 331页

安全员继续教育考试题库1000道附答案(名师推.. 281页

演出经纪人之演出市场政策与法律法规题库400道.. 116页

演出经纪人考试题库1000道及1套完整答案 273页

我爱吃零食作文 5页

2024年幼儿园教师工作心得体会精选15篇 32页

2024年幼儿园开学安全计划3篇 7页

2024年幼儿园年度工作总结精选15篇 72页

2024年幼儿园小班防疫教育总结(精选6篇) 16页

2024年幼儿园小班班务总结范文(精选32篇) 112页

2024年幼儿园小班春季班务计划 9页

电梯维保报价书 3页

棋牌室培训资料 20页

电镀黑铬工艺 10页

电镀六价铬讲议 10页

计算机桌面运维技术服务方案 32页

老年慢性阻塞性肺疾病呼吸衰竭患者经鼻气管插.. 5页

《博微电力工程经济评价软件使用手册》 38页

少先队植树造林歌 19页