2009-03-01から1ヶ月間の記事一覧

ループの書き方

単純なループ ループは以下のように書けます。 object Main extends Application { // forループで 0 1 2 3 4 の表示(until) for (i <- 0 until 5) { print(i + " ") } // forループで 0 1 2 3 4 の表示(to) for (i <- 0 to 4) { print(i + " ") } // while…

全てがオブジェクト

Scala は純粋オブジェクト指向言語です。これには、数値や関数も含まれます。Java でいうプリミティブ型はありません。 以下の2つは同じ意味になります。 1 + 2 * 3 1.+(2.*(3))1行目は実際には+メソッドと*メソッドの呼び出しとなっています。これは Scala…

条件分岐(if-else)について

if-else 文は普通に書けますが、Scala では評価式として扱われます。以下の例を見て下さい。 object Hoge extends Application { val num = 5 println( if(num % 2 == 0) "偶数" else "奇数" ) }この結果、「奇数」と表示されます。まとめると、if-else 文は…

インポート宣言

Scala では Java の API がシームレスに使えます。このとき、Java と同じようにインポート宣言を行います。Scala でのインポート宣言は Java のインポート宣言より少し強力です。 import java.text.DateFormat // Javaと同様のインポート宣言 import java.te…

メソッド定義

予約語 def 関数の定義は、予約語 def で行います。 def x = e のようにすると、xが使用される時に毎回eが評価されます。 def で定義された名前は、名前を (未評価の) 定義の右辺で置き換えることによって評価されます。 メソッドの例 2 つの引数を取り、大…

変数の定義について(val と var)

val と var の変数定義 Scala の変数定義には val と var があります。 val は一度割り当てられるとその後変化しない値 var は生存期間中値が変化する変数 var varmsg = "Hello" val valmsg = "Hello" varmsg = "Hello World!!" valmsg = "Hello World!!" //…

Scala の型について

型階層 型階層は以下の様に、AnyRefとAnyValに分かれています。 abstract class Any ├ class AnyRef extends Any 参照型の root クラス ├ sealed final class AnyVal extends Any 値型の root クラス └ final trait Nothing extends Any Any は、Scalaのクラ…

Scala の予約語

Scala の予約語一覧 abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected requires return sealed super this throw trait try true type v…

Scalaとは

Scala とは Scala は2003年に登場した比較的若いプログラミング言語です。設計者は Martin Odersky 教授で、彼は、Java ジェネリクスの最初のバージョンの設計者の一人であり、現在の javac コンパイラの原作者です。Scala の研究は、Java の下位互換性によ…

Hello World と基本的なこと

HelloWorld まずは伝統的なHelloWorldをから始めます。 object Main { def main(args: Array[String]) = { println("Hello, world!") } } Scala ではクラス中の static メソッドはサポートされていません。その代わり、object キーワードで定義される single…