プログラミング GROOVYのお勉強その4
前回の続き。
70〜81ページの内容。
クロージャ
- Groovy楽しいな〜って感じる機能のひとつ
- C#とかが羨ましかった
// 単純に呼び出してみる1 Closure c1 = { println "クロージャその1" } c1.call() // call()を省略もできる Closure c2 = { println "クロージャその2" } c2() // 引数を渡して呼び出してみる Closure c3 = { arg -> println "クロージャ$arg" } c3.call("その3") // 暗黙の引数 it を取る // 引数無しの場合、it は null となる Closure c4 = { println "クロージャ$it" } c4.call("その4") // 引数を取らない場合は下記 Closure c5 = { -> println "クロージャその5" } c5.call() // c5.call("a")などとすると MissingMethodException:No signature of method となる
- 大好きだコレヽ(・∀・ )ノ キャッ キャッ
ローンパターン
FileInputStream fis = null; try{ fis = new FileInputStream("hoge.txt"); }finally{ if(fis != null){ try{ fis.close(); }catch(Exception e){ } } }
- でもGroovyだとこんなに簡単!
new FileInputStream("hoge.txt").withStream{ fis -> // 処理 }
コレクション型
- 範囲は .. で生成できる
list = 1..10 // 1〜10が格納される assert list.size() == 10
- 繰り返しで範囲を使える、文字列も出来るとか反則
// for文で使ってみる for(int i: 1..10){ println i // 1〜10までが出力される } // こんなのもできる (1 ..< 10).each{ println it // 1〜9までが出力される } // 文字列も出来るとか! ("a" .. "d").each{ println it // a 〜 dまでが出力される }
※1時過ぎたのでまた今度(´・ω・`)