Scala "Hello,world!" 程序

大憨熊 提交于 2019-12-06 16:07:56

"Hello, world!" 程序

首先我们使用标准的 “Hello, world!” 程序来演示一下 Scala 的简单使用

object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello, world!")
  }
}

这个程序的结构对于 Java 程序员来说应该比较熟悉: 程序由 main 方法组成, 它使用命令行参数即一个字符串数组作为参数; main 方法体由一个对预定义函数 println 的简单调用组成, println函数使用 “Hello, world!” 作为参数, 最终结果会将 “Hello, world!” 打印输出到标准输出。main 方法没有返回值 (它是一个过程函数). 因此没有必要声明一个返回值类型。

而对于 Java 程序员来说不那么熟悉的是 object 声明包含了 main 方法。 这样一种声明介绍通常被称为一个单例对象, 即一个只有单个实例的类。因此*** object 声明既声明了一个叫做 HelloWorld 的类, 又声明了这个类的一个实例, 它也叫做 HelloWorld***。这个实例在第一次使用的时候创建。

细心的读者可能会注意到 main 方法没有声明为 static。这是因为 Scala 中不存在静态的成员(方法或字段)。Scala 程序员在单例对象中声明这些成员, 而不是定义静态成员。

交互式地运行 "Hello, world!" 程序

在命令行中输入 scala 命令并按下回车键, 即可启动 Scala 解释器, 从而可以交互式地解释 Scala 表达式。

scala shell

上面实际发生了两件事情: 1、HelloWorld 程序被编译成了字节码; 2、字节码由 Java 虚拟机执行。

快捷键 :q 是内部 shell 命令 :quit 的简写, 它用来退出解释器。

编译和运行 "Hello, world!" 程序

####1、编译 scalac 命令可以编译一个或多个 Scala 源文件并生成可以在任何标准的 JVM 上执行的 Java 字节码。Scala 编译器工作方式和 Java SDK 的编译器 javac 类似。

将上述 "Hello, world!" 程序保存到文件 HelloWorld.scala 中, 然后使用下面的命令编译它:

scalac HelloWorld.scala

scalac 编译生成的字节码文件默认放置在当前工作目录下。你可以使用 -d 选项来指定不同的输出目录。

scalac -d /Users/jackiehff HelloWorld.scala

编译后生成的文件有两个:

HelloWorld$.class
HelloWorld.class

至于为什么会生成有两个文件,后面再写文章详述, 这里不再深究。

####2、运行 可以使用带有合适选项的 scala 命令执行生成的字节码

scala -classpath . HelloWorld

最后会输出期望的结果: Hello, world!。

脚本方式运行 "Hello, world!" 程序

也可以将 "Hello, world!" 程序作为一个 shell 脚本或是 批处理命令运行。bash shell 脚本 HelloWorld.sh 包含下面的 Scala 代码以及 shell 序言

HelloWorld Script

然后直接从命令行解释器中运行:

sh HelloWorld.sh

最后也会输出期望的结果: Hello, world!。

IntelliJ IDEA 中运行 "Hello, world!" 程序

首先,在 IntelliJ IDEA 中安装 Scala 插件:

IDEA Scala Plugin

在 IntelliJ IDEA 中创建一个 Scala 项目,然后创建 HelloWorld.scala 并运行:

IDEA HelloWorld

##Scala Worksheet

使用Scala Worksheet的好处是: 在 IntelliJ IDEA中也可以交互式地编译运行 Scala 代码。

Scala Worksheet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!