Scala入門記002 初めてのScalaプログラム

すでに3ヶ月サボってしまいました。
Scala漬けになりたい所ではありますが、なかなかそういう訳にもいなかないですね。。。

前回Scalaのちょっとした実行とsbtを紹介したので、今回はちゃんとプログラムをファイルに書いて実行するための記録です。
Scala入門記の目次はこちらです。

コマンド(scalacとscala)でコンパイルして実行する

最初はHelloWorldですよね。
JavaでHello!と表示されるプログラムを書いて実行するときは

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello!");
    }
}

というHello.javaファイルを作り、コマンドで

javac Hello.java #Hello.classができる
java Hello #Hello!が表示される


という流れだったものが、Scalaでは

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

というHello.scalaファイルを作り、

scalac Hello.scala #Hello.classができる
scala Hello #Hello!が表示される

という流れになります。
まとめる程でもないですね(^^;


sbtでコンパイルして実行する

普通はEclipseとかのIDEを使うのでこんなことやらないのですが、sbtを使うとIDEがなくてもいいんじゃない?って感じにもなります。


上記のScalaのプログラムを書いたフォルダで

sbt ~run

として実行します。
本当は推奨のディレクトリ構造があるのですが、ルールに沿ってなくてもsbtは頑張ってくれます。


この時の「~」があるのとないのでは大違いです。
まず「run」によってsbtがプログラムを見つけて、実行してくれます。
sbtが出力出力するログに埋もれてしまって見づらいのですが、

Hello!

という出力があります。


そして「~」をつけたsbtはソースの更新待ちになっています。
sbtはそのままでHello.scalaのprintln("Hello!")をprintln("Hello world!")に変えてあげると、sbtは自動的に更新されたファイルをコンパイルして再実行してくれます。
便利ですね。

テキストエディタだけでもプログラムがかけてしまいそうです。

まとめ

プログラムのファイルから実行する流れを確認しましたが、私は結局はIDEを使うので今後はscalacはほとんど打たないでしょう(^^;
でも、sbtは今後もずっとお付き合いすることになると思います。
sbtは開発の中心にいつも存在することになりそうです。


Scala入門記の目次はこちらです。