hakobera's blog

技術メモ。たまに雑談

はじめてのScala その3 Hello, world! から学ぶ

前回まで基本的な文法がわかったので、今回からは実践から学んでいこうと思う。
本当はクラス宣言とかも含めてもう少し細かく文法とか言語仕様とか書こうと思ったんですが、書いていたらなんだかよくわからなくなってしまったので、とりあえず動くものを書いてみようという次第です。

まずは公式のチュートリアル(PDF)をやってみることにする。

まず、1章にこんなプログラムが書いてある。はい、定番のあれ。

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

Javaがわかっている人には特に違和感はない。

  • ブロックは { }で記述
  • 型宣言は 変数名:型 のように後置形式
  • 関数の定義は def 関数名(引数...) { 本体 }の形式
  • プログラムの開始メソッドは main(args:Array[String]

すこし面白いのはHelloWorld型が class ではなくて object になっていること。
Scalaは singleton を言語レベルでサポートしており、singletonなクラスは object で宣言するとのこと。その代わりに Scalaには Javaでいう static の概念はない。これは前回予約語一覧にstaticがないことからもわかる。

こいつを実行するには以下のコマンドを入力する。

> scalac HelloWorld.scala
> scala -classpath . HelloWorld
Hello, world!

はい、ここですごいことに気がつきました。Scalaって事前コンパイルが必要な言語なんです!てっきり「スクリプト言語」だと勘違いしていたんですが違うんです!

インタープリターが用意されているので、まぁ、それっぽく使うことはできるようですが、現実的にはコンパイルが必要。

今日わかったこと

  • Scalaも main メソッドから始まる
  • シングルトンは言語仕様でサポートされていて、object型で宣言する
  • Scalaスクリプト言語ではない

次回はJavaとの連携方法。