Scalaも素晴らしいけど、Groovyも素晴らしいですよ
id:nazokingさんが、java使いのためのScala の勉強のための資料作り scalaって素晴らしい いろいろ1 - nazonoDiaryという記事を書いていた。
ここでは、Scalaで書くとJavaよりも簡潔に書けるよとのことで紹介されているのですが、比較対象にGroovyが入っておらずJavaScriptやRubyだったのがちょっと残念だったので*1、「Groovyでもだいたい同じようなことができるよ!」ということで、今回の記事を書いてみました。
id:nazokingさんと同じ見出しで行ってみたいと思います。
(動作環境: Groovy Version: 1.7.2 JVM: 1.6.0_20)
すべてがオブジェクト
1.toString()
デフォルト値付き引数
def hoge(a = 'aの初期値', b = 'bの初期値') { // do something }
名前付き引数
def hoge(namedMap) { println "${namedMap.a} ${namedMap.b}" } hoge(a: 'aaa', b: 'bbb')
javabeanが簡単に書ける
class Hoge { def b } h = new Hoge() h.setB('a') println h.getB() // 'a'が表示
複数行文字列リテラル
a = ''' hoge fuga '''
最後に ; がなくても動く
動きます。
return が必要ない
最後の文の返す値が戻り値。Rubyと同じですね。
複数の値を返すTuple
たぶんGroovyの場合タプルではないんですが、同じようなことはできます。
def (n1, n2) = ['vlaue1', 'value2'] println n1 println n2
ということで
コード量だったらScalaに負けてないと思う今日この頃。