开始学习Scala

"Hello, world!" 程序

作为第一个例程,我们用标准的 Hello world程序来证明不需太多了解Scala就可以使用Scala tools。

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

The structure of this program should be familiar to Java programmers: it consists of the method main which prints out a friendly greeting to the standard output.

对于Java程序员,这种编程结构应该很熟悉。它包含一个main方法,能打印出一个友好的问候语的标准输出。

我们假设Scala 软件和用户环境设置都是正确的。例如:

Environment Variable Value (example)
Unix
$SCALA_HOME
$PATH
/usr/local/share/scala
$PATH:$SCALA_HOME/bin
Windows
%SCALA_HOME%
%PATH%
c:\Progra~1\Scala
%PATH%;%SCALA_HOME%\bin

交互式执行它!

Scala命令开启了一个交互式命令shell ,从这里Scala表达式被交互式解释执行。

  > scala
  This is a Scala shell.
  Type in expressions to have them evaluated.
  Type :help for more information.

  scala> object HelloWorld {
       |   def main(args: Array[String]) {
       |     println("Hello, world!")
       |   }
       | }
  defined module HelloWorld

  scala> HelloWorld.main(null)
  Hello, world!
  unnamed0: Unit = ()
  scala>:q

快显:q代表内部的shell命令 :quit 用来退出解释器。

 

Script it !

上面的Scala程序也可以作为一个shell script脚本和一个bat处理命令(see the examples in the man pages of the scala command)一样单独运行。

bash shell script脚本编写script.sh 脚本包含下面的Scala代码(和shell 序言 )

  #!/bin/sh
  exec scala "$0" "$@"
  !#
  object HelloWorld {
    def main(args: Array[String]) {
      println("Hello, world! " + args.toList)
    }
  }
  HelloWorld.main(args)

可以从命令窗口运行:

  > ./script.sh

注释:这里我们假设script.sh这个脚本文件已经得到执行权限和scala 命令路径已经在可见的PATH环境中指明。

编译!

Scalac命令编译一个(或者多个)Scala源文件生成可以运行在任何标准JVM上Java字节码文件;Scala编译器作用像Javac,就是Java SDK中的Java编译器。

  > scalac HelloWorld.scala

过默认的scalac生成的class文件在当前工作目录下。你可以通过使用-d 参数来指定一个不同的目录。


  > scalac -d classes HelloWorld.scala

运行!

使用恰当的参数的Scala命令来执行已经生成的字节码文件:

  > scala HelloWorld

Scala允许指定命令参数,例如

  > scala -classpath classes HelloWorld

其中option表示参数的意思。

Scala命令的参数必须是顶层对象。如果extendsApplication语句跟在那个对象,那么所有包含了那个对象的声明将会被执行;否则你必须增加一个main方法来作为你程序执行的入口。

程序就如下所示:

object HelloWorld2 extends Application {
  println("Hello, world!")
}