http://www.scala-lang.org
The "Hello, world!" Program
As a first example, we use the standard Hello world program to demonstrate the use of the Scala tools without knowing too much about the language.
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.
We assume that both the Scala software and the user environment are set up correctly. For example:
Environment Variable Value (example) Unix $SCALA_HOME $PATH /usr/local/share/scala $PATH:$SCALA_HOME/binWindows %SCALA_HOME% %PATH% c:\Progra~1\Scala %PATH%;%SCALA_HOME%\bin
Run it interactively !
The scala command starts an interactive shell where Scala expressions are interpreted interactively.
> 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
The shortcut :q stands for the internal shell command :quit used to exit the interpreter.
Script it !
The above Scala program may also be run as a shell script respectively as a batch command (see the examples in the man pages of the scala command).
The bash shell script script.sh containing the following Scala code (and shell preamble)
#!/bin/sh
exec scala "$0" "$@"
!# object HelloWorld { def main(args: Array[String]) { println("Hello, world! " + args.toList) } } HelloWorld.main(args)
can be run directly from the command shell:
> ./script.sh
Note: We assume here the file
script.shhas execute access and the search path for thescalacommand is specified in thePATHenvironment variable.
Compile it !
The scalac command compiles one (or more) Scala source file(s) and generates Java bytecode which can be executed on any standard JVM; the Scala compiler works similarly to javac, the Java compiler of the Java SDK.
> scalac HelloWorld.scala
By default scalac generates the class files into the current working directory. You may specify a different output directory using the -d option.
> scalac -d classes HelloWorld.scala
Execute it !
The scala command executes the generated bytecode with the appropriate options:
> scala HelloWorld
scala allows us to specify command options, such as the -classpath (or -cp) option:
> scala -classpath classes HelloWorld
The argument of the scala command has to be a top-level object. If that object is followed by the clause extends Application, then all statements contained in that object will be executed; otherwise you have to add a method main which will act as the entry point of your program.
Here is how it looks like:
object HelloWorld2 extends Application { println("Hello, world!") }