130 likes | 341 Views
Scala 入門 ( Java との 基本的な構文 比較). 2012/08/03. Scala とは?. Java プラットフォーム上で動作できるプログラミング 言語 オブジェクト指向 + 関数型言語の組み合わせ 静的型付け 言語 ソース を簡素に記述することができる 言語仕様から説明する と嫌になる人がいそうなのでまずは Java との比較から始めます!. 変数定義. Java の場合、「データ型 変数名 = 初期値」 String tmp = “ Scala 楽しい !”; Scala の場合、「 var 変数 : データ型 = 初期値」
E N D
Scala入門(Javaとの基本的な構文比較) 2012/08/03
Scalaとは? • Javaプラットフォーム上で動作できるプログラミング言語 • オブジェクト指向+関数型言語の組み合わせ • 静的型付け言語 • ソースを簡素に記述することができる 言語仕様から説明すると嫌になる人がいそうなのでまずはJavaとの比較から始めます!
変数定義 • Javaの場合、「データ型 変数名 = 初期値」 String tmp = “Scala楽しい!”; • Scalaの場合、「var変数:データ型 = 初期値」 vartmp:String = “Scala楽しい”; • Scalaは型を省略できる(型推論) vartmp= “Scala楽しい”; ↑次に数値を代入するとコンパイルエラー!
定数 • Javaの場合、finalで定義 String final TEST_KEY = “定数です”; • Scalaの場合、valで定義 val TEST_KEY = “定数です”;
文末 • Javaの場合はセミコロン String tmp = “Scala楽しい!”; • Scalaの場合はセミコロンがなくてもOK vartmp = “Scala楽しい” もちろん、「;」をつけてもOK vartmp = “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に初期値を設定したい場合 deftest(name, email=“test@a.com”) :Unit = { }
多重ループ • Javaの場合 for (inti = 0; i < 10; i++) { for (intj = 0; j < 5; j++) { } } • Scalaの場合 for (i <- 0 until 10; j <- 0 until 5) { }
forフィルター • Javaの場合 for (inti = 0; i < 10; i++) { if (i == 2) { } } • Scalaの場合 for (i <- 0 to 10 if i == 2) { }
今回はここまで • まずは簡単な文法について説明 • あまり、長くやると何も覚えてくれなそうなので・・・。 • 次回はクラス定義など少し実践的な内容 • Scalaの独自機能についても説明予定