Scala入門 (Javaとの基本的な構文比較) 2012/08/03 Scalaとは? • Javaプラットフォーム上で動作できるプログラ ミング言語 • オブジェクト指向+関数型言語の組み合わせ • 静的型付け言語 • ソースを簡素に記述することができる 言語仕様から説明すると嫌になる人がいそうな のでまずはJavaとの比較から始めます! 変数定義 • Javaの場合、「データ型 変数名 = 初期値」 String tmp = “Scala楽しい!”; • Scalaの場合、「var 変数:データ型 = 初期値」 var tmp:String = “Scala楽しい”; • Scalaは型を省略できる(型推論) var tmp = “Scala楽しい”; ↑次に数値を代入するとコンパイルエラー! 定数 • Javaの場合、finalで定義 String final TEST_KEY = “定数です”; • Scalaの場合、valで定義 val TEST_KEY = “定数です”; 文末 • Javaの場合はセミコロン String tmp = “Scala楽しい!”; • Scalaの場合はセミコロンがなくてもOK var tmp = “Scala楽しい” もちろん、「;」をつけてもOK var tmp = “Scala楽しい”; import文 • 基本的には同じ • ワールドカード指定が異なる • Javaの場合は「*」 import java.io.*; • Scalaの場合は「_」 import java.io._; 関数(メソッド)定義 • Javaでのメソッド public void test(int x) { } // 戻り値なし public int test(int x) { } // 戻り値あり • Scalaでの関数 def test(x:Int) : Unit = { } // 戻り値なし def test(x:Int): Int = { } // 戻り値あり アクセス修飾子 • JavaのpublicはScalaでは存在しない 【Java】 public void test(int x) 【Scala】 def test(x:Int) : Unit 上記は同じ意味である。つまり、Scalaでは何も 指定しないことがJavaのpublicとなる 関数の戻り値 • Javaの場合はreturnで返却 public int test() { retrun x; } • Scalaの場合はreturn & 最後の値 def test(): Int = { if (x == 2) { return -1 } x // 最後の行も戻り値となる } 引数のデフォルト値 • Javaには無い機能で関数のデフォルト値を指 定できる(PHP等にある機能と同様) def test(name, email) :Unit = { } • Emailに初期値を設定したい場合 def test(name, email=“[email protected]”) :Unit = { } 多重ループ • Javaの場合 for (int i = 0; i < 10; i++) { for (int j = 0; j < 5; j++) { } } • Scalaの場合 for (i <- 0 until 10; j <- 0 until 5) { } forフィルター • Javaの場合 for (int i = 0; i < 10; i++) { if (i == 2) { } } • Scalaの場合 for (i <- 0 to 10 if i == 2) { } 今回はここまで • まずは簡単な文法について説明 • あまり、長くやると何も覚えてくれなそうなの で・・・。 • 次回はクラス定義など少し実践的な内容 • Scalaの独自機能についても説明予定
© Copyright 2024 ExpyDoc