2 最初の例

最初の例

最初の例として、標準的な Hello world プログラムを用います。これはあまり興味深いとは言えませんが、Scala 言語に関する知識をあまり必要とせずに、Scala ツールの使い方を簡単に示すことができます。このようになります。

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

Java プログラマにはプログラムの構造はお馴染みのものでしょう。main と呼ばれる1つのメソッドがあり、main はパラメータとしてコマンドライン引数を文字列配列として受け取ります。メソッドの本体では定義済みメソッドである println を、友好的な挨拶文を引数として1回呼び出しています。main メソッドは値を返しません(手続きメソッドです)。それゆえ戻り値型を宣言する必要はありません。

Java プログラマにとって馴染みが薄いのは、main メソッドを囲んでいる object という宣言でしょう。このような宣言によって、 シングルトンオブジェクト として知られるただ一つのインスタンスしか持たないクラスを導入できます。この宣言はすなわち、HelloWorld と呼ばれるクラスと、そのクラスの同じく HelloWorld と呼ばれるインスタンスの両方をいっぺんに宣言します。インスタンスは必要に応じて、つまり最初に使用される時に、生成されます。

賢明なる読者のみなさんは既にお気づきかもしれませんが、ここでは main メソッドは static として宣言されていません。というのは、静的メンバ(メソッドやフィールド)は Scala には存在しないからです。Scala プログラミングでは、静的メンバを定義するのではなくて、シングルトンオブジェクトのメンバを宣言します。

2.1 例をコンパイルする

この例をコンパイルするには、Scala コンパイラの scalac を使用します。scalac は多くのコンパイラと同じように働きます。引数としてソースファイル1つと、もしかしたらオプションをいくつか取り、オブジェクトファイルを1つあるいはいくつか生成します。生成されるオブジェクトファイルは標準的な Java のクラスファイルです。上記プログラムを HelloWorld.scala というファイルに保存すれば、下記のコマンドでコンパイルできます。(不等号 '>' はシェルプロンプトなので、入力しないで下さい。)

> scalac HelloWorld.scala

これによってクラスファイルがいくつかカレントディレクトリに生成されます。その一つは HelloWorld.class と呼ばれ、scala コマンドによって直接実行可能なクラスを含んでいますが、それは次節で示します。

2.2 例を走らせる

Scala プログラムをコンパイルしたあとは、scala コマンドにて実行できます。使い方は Java プログラムの実行で使う java コマンドと非常によく似ており、同じオプションが使えます。上記の例は下記のコマンドで実行でき、期待通りに出力されます。

> scala -classpath . HelloWorld Hello, world!