December 21, 2009

Enjoy Scala! #3 : 配列を扱う

こんばんは!
正月が待ち遠しい jugyo です!
みなさんは何歳くらいまでお年玉をもらっていましたか?

さて、Enjoy Scala! の第3回目です。
今日は Scala で配列を扱ってみたいと思います。

ではさっそくコードを見てみましょう。

// Array を new
val strings = new Array[String](4)
// 配列に値をセット
strings(0) = "A"
strings(1) = "B"
strings(2) = "C"
strings(3) = "D"
// 出力
strings.foreach(i => println(i))

この例では、長さが 4 の配列を定義しています。
strings(3) = "D"」のように「()」を使って配列に値をセットしていますね。
こう書いたとき、コンパイラが「strings.update(3, "D")」というふうに update メソッドを呼び出すかたちに変換してくれるらしいです。

次に、配列の 0 〜 2 番目までを出力したいとしましょう。
そういう場合は以下のようにします。

for (i <- 0 to 2)
  println(strings(i))

ちなみに、上記の「0 to 2」という部分は実際には「(0).to(2)」というメソッド呼び出しに変換されるらしいです。
なので、以下のように書きかえることもできます。

for (i <- 0.to(2))
  println(strings(i))

さらに、 foreach メソッドを使って以下のように書きかえることもできます。

0.to(2).foreach(i => println(strings(i)))

で、さっきの「0 to 2」が「(0).to(2)」となる件ですけど、 Scala ではメソッド呼び出しの際、レシーバが明示的に指定されていると「.」と「()」を省略できるらしいです。
なので例えば、「(1).+(1)」というメソッド呼び出しを「1 + 1」というふうに書けるんです!

面白いですね!

3 Comments »

  1. Comment by Beck, January 12, 2010 at 0:57 #

    あけおめー

  2. Comment by jugyo, January 12, 2010 at 11:28 #

    おめでとうございますー。
    元気ですか?
    僕は元気です。

  3. Comment by Beck, January 27, 2010 at 22:06 #

    概ね元気じゃないですねー

    とりあえず、今年はずっと風邪ひいてます。

Leave a comment

※上の項目は入力してもしなくてもよいです。