日々常々

ふつうのプログラマがあたりまえにしたいこと。

Scalaを使ってみよう

Scalaの本は2冊*1持ってるんですけど、Scala自体は全く使った事がありませんでした。本を読んでてもピンと来ない状態が続いていたので、いい加減触ってみることにしました。

Scalaのダウンロードとインストール

http://www.scala-lang.org/downloads からダウンロードします。Windows なんで Windowsscala-2.8.1.final.zip にします。IzPack Installer (all platforms)scala-2.8.1.final-installer.jar はインストーラーらしい。パスの設定とか色々してくれるのかもしれないけど、その辺は別に要らないと思うので zip でいっておきます。
ダウンロードが完了したら適当なフォルダに解凍します。インストールは解凍しただけで終わりです。

Scalaの実行


解凍したフォルダの bin の中にある scala.bat を何も考えず実行します。JAVA_HOMEが設定されているか、PATHが通ってる所にJavaがあれば動くっぽいです。

動いたら、とりあえずHelloWorld。

scala> println("Hello, world!")
Hello, world!

scala>


単に"使ってみる"だけなら、これでおしまい。


…流石にこれで終わるのも何なんで、IDEも。

何となくよさそうなので IntelliJ IDEA にしてみます。 Ultimate Edition と Community Edition があって、インストールしてみたりしたことはあるんですけど、まともに使った事はありません。別にEclipseでも良いんだけど、折角なんで使ってみます。以降は使った事がある人には必要のないメモです。

IntelliJ IDEA のダウンロードとインストール

ダウンロードは http://www.jetbrains.com/idea/download/index.html から、Community Edition を選択し、適当にインストールディレクトリ変える程度をして、インストール完了。

Scalaプラグインのインストール


起動した画面にある OpenPluginManager をクリックしたら、プラグイン選択してインストールする画面が出てきます。検索に Scala とか入れて見つかったのをインストールします。インストールが終わったら再起動を促されるので、そのまま再起動。世話無いですね。

プロジェクトの作成

  1. Create New Project → プロジェクト作るウィザードが立ち上がる。
  2. Create project from scratch を選択
  3. Next
  4. Name → SampleScala
  5. 他は変えなくて良いです。Java Module になってればOK。
  6. Next
  7. Create source directory → デフォルトのまま。変えたかったらどうぞ。
  8. Next
  9. それっぽい画面が出るので Scala にチェックを入れる。
  10. Use Scala distribution を選択。
  11. 解凍した Scala を指定する。
  12. Finish

出来上がったプロジェクトの External Libraries に Scala のライブラリが入っていればOK。

クラスの作成

ソースフォルダを選択して、 New → Scala Class すると、Name と Kind を入れる小窓がでます。Name に適当な名前(ここでは Hello と入力)、Kind は Object*2 を選択してOKボタンを押すと、こんなファイルが作られます。(Hello.scala

/**
 * ヘッダのコメント
 */
object Hello

object宣言だけの1行。括弧も無くて潔い。

Helloと言わせる

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

Javaのメイメソッドに相当するのをさらっと書きます。書いたら実行します。メニューの Run を選ぶか、Alt+Shift+F10 を押したら実行メニューが出ます。その中に今回作った object の名前(Hello)が出ていればOKです。

object にしなきゃいけないのに class と書いてたり、mainの引数が違ったりすると実行できません。実行メニューに出てこないのはおそらく書き間違えです。


そんなわけでようやく重い腰を上げてScalaさわりはじめました。色んなことに手をつけては止まってる気はしなくも無いんですけど、それは言いっこ無しで。
4月末(予定)の「プログラミングScala読書会(仮)」までにある程度の下地を作っておく計画です。
読んでも「殆ど触った事もありません」とかだと身に入らなくて勿体無いので、なんとか少しずつでも進めて行きたいなーと思っているのです。

*1:"Scalaで学ぶ関数脳入門"と"プログラミングScala"

*2:ここでうっかりClassにしちゃうと実行できません。