scalaを試す 1日目

今度勉強会に参加することになったので予習も含めてお勉強してみる。

インストール編

どうやらMacPortsからのインストールが楽そうだ。*1
といっても私のMacBookには入っていないのでこの機会にインストールしてみよう。
ここを参考にやってみる。
インストール完了。

さっそくscalaのインストール

$ sudo port install scala

インストール出来たか確認する。

$ scala -version
Scala code runner version 2.7.0-final -- (c) 2002-2008 LAMP/EPFL

完了!!!

とりあえず触ってみる

WEB+DB PRESS Vol.43

WEB+DB PRESS Vol.43

を参考にいじってみる。

$ scala
Welcome to Scala version 2.7.0-final (Java HotSpot(TM) Client VM, Java 1.5.0_13).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val msg = "Hello Scala!"
msg: java.lang.String = Hello Scala!

scala> msg size
res0: Int = 12

scala> ( 1 to res2 ) foreach print
:5: error: not found: value res2
       ( 1 to res2 ) foreach print
              ^

scala> ( 1 to res0 ) foreach print
123456789101112
scala> msg = "Bye Scala!"
:7: error: assignment to immutable value
       msg = "Bye Scala!"
           ^

scala> var msg = "Bye Scala!"
msg: java.lang.String = Bye Scala!

scala> msg = "Hello!"
msg: java.lang.String = Hello!

scala> msg.foreach( println )
H
e
l
l
o
!

scala> msg(0)
res6: Char = H

scala> for ( c <- 'a' to 'z' )
     | print( c )
abcdefghijklmnopqrstuvwxyz
scala> :quit

ふむ。コマンド実行ごとにres?が出てくるのね。なるほど。

文法など

変数名:型名 = 値

で記述する。ただし型推論できる場合は省略できる。
こんなかんじ

cala> var int1:Int = 1
int1: Int = 1

scala> var int2 = 1    
int2: Int = 1
valとvar

valは再入不可。varは再入可能。

scala> val ival = 1
ival: Int = 1

scala> ival = 2
:7: error: assignment to immutable value
       ival = 2
            ^

scala> var ivar = 1
ivar: Int = 1

scala> ivar = 2
ivar: Int = 2
文くぎり

通常は改行が区切り。オプションで;もOK

scala> var i = 1; var j = 2;
i: Int = 1
j: Int = 2

ファイルから実行する

以下の内容をテキストファイルで記述する。
Hello.scala

object Hello {
  def main(args: Array[String]): Unit = {
    System.out.println("Hello, Scala!")
  }
}

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

$ scalac Hello.scala
$ scala Hello
Hello, Scala!

*1:今回はMacPortsを使用しているが、基本はhttp://www.scala-lang.org/downloads/index.htmlからファイルをダウンロードして解凍したディレクトリを適当な場所へ配置後、パスを通せばOKなはず