scala的helloword
自从《C编程语言》这本书发行以来,大多数编程书籍都以一个简单的“ Hello,world”示例开始,
并且按照传统,这是Scala“ Hello,world”示例的源代码:
object Hello {
def main(args: Array[String]) = {
println("Hello, world")
}
}
使用文本编辑器将该源代码保存在名为Hello.scala的文件中。保存后,scalac
在命令行提示符下运行以下命令进行编译:
$ scalac Hello.scala
scalac
就像一样javac
,该命令将创建两个新文件:
- hello$ .class
- hello.class
这些是与您使用所创建的“ .class”字节码文件类型相同的类型javac
,它们准备与JVM一起使用。
现在,您可以Hello
使用以下scala
命令运行该应用程序:
$ scala Hello
讨论
这又是原始的源代码:
object Hello {
def main(args: Array[String]) = {
println("Hello, world")
}
}
这是该代码的简短描述:
- 它定义了一个mian方法在object Hello里面
object
与java中的class相似,但在您需要该类的单个实例时专门使用它- 如果您是从Java来的Scala,那意味着这
main
就像一种static
方法(稍后我们将详细介绍)
- 如果您是从Java来的Scala,那意味着这
main
接受一个名为参数的输入参数args
,该参数是一个字符串数组Array
是对原来java的Arrary的一个封装,在完善的类
该Scala代码与以下Java代码几乎相同:
更深入:Scala创建.class文件
如前所述,当您运行scalac
命令时,它将创建.class JVM字节码文件。您可以自己查看。例如,javap
在Hello.class文件上运行以下命令:
$ javap Hello.class
Compiled from "Hello.scala"
public final class Hello {
public static void main(java.lang.String[]);
}
如该输出所示,该javap
命令读取该.class文件,就像从Java源代码创建该文件一样。Scala代码在JVM上运行,并且可以使用现有的Java库-对于Scala程序员而言,这都是极大的好处。