Scala "Hello,world!" 程序
2016-06-25 01:36
423 查看
"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 表达式。上面实际发生了两件事情: 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 序言然后直接从命令行解释器中运行:
sh HelloWorld.sh
最后也会输出期望的结果: Hello, world!。
IntelliJ IDEA 中运行 "Hello, world!" 程序
首先,在 IntelliJ IDEA 中安装 Scala 插件:在 IntelliJ IDEA 中创建一个 Scala 项目,然后创建 HelloWorld.scala 并运行:
##Scala Worksheet
使用Scala Worksheet的好处是: 在 IntelliJ IDEA中也可以交互式地编译运行 Scala 代码。
相关文章推荐
- Windows下Scala环境搭建
- C#编程自学之开篇介绍
- 不用IDE写C#的Hello World的方法
- jquery Moblie入门―hello world的示例代码学习
- Windows7下安装Scala 2.9.2教程
- Android学习笔记(一)环境安装及第一个hello world
- Cocos2d-x学习笔记之Hello World!
- 6个变态的C语言Hello World程序
- hello world程序集锦
- 全民学编程之 Hello World
- 使用angular写一个hello world
- Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
- Logstash笔记(二) ----input插件
- 函数定义
- 使用 Scala 写WordContext程序
- Scala 的文件访问
- dubbo初探一之hello world
- MySQL子查询(subquery)分类
- 学期总结