Groovy

メソッドの動的追加

Grな日々(uehajの日記): Expandoとは何か (http://d.hatena.ne.jp/uehaj/20080323/1206242516) コメントで教えてサイトでExpandoに関して多少理解できたが、相変わらず混乱する。ルールをきちんと理解する必要があると感じた。以下のようにExpandoを継承する…

クロージャのレキシカルスコープ

インスタンス変数とローカル変数の参照するときの書き方は同じなので、クロージャのレキシカルスコープは非常に混乱しやすいと思った。例えば以下の例。まずはaをローカル変数とした場合。foo内のaはローカル変数で、f.a=2のaはプロパティということだと思う…

プロパティとフィールドとメソッド

nobusueの日記: Grails Code Reading 第13回資料更新しました (http://d.hatena.ne.jp/nobusue/20081128/p1) オブジェクトインスタンスのクラス名 obj.class.name オブジェクトのプロパティ/メソッド/フィールド一覧 obj.properties obj.class.methods.name …

関数とメソッドとクロージャ

Groovyに関して少し調べた。GroovyもRubyと同様、関数という概念はどうやらないっぽい。すなわちトップレベルで定義すると関数でなくクラスのメソッドとして定義される。メソッドとクロージャだけである。また、メソッド内でメソッドを定義するのもエラーが…

Groovyのオブジェクト指向

Groovy本を読んでいてGroovyのオブジェクト指向機能は変わっていて面白いと思った。例えば以下。 Groovy way to implement interfaces (http://groovy.codehaus.org/Groovy+way+to+implement+interfaces) クロージャでインタフェースを実装するらしい。まだ…

ScalaからGroovyへ

昨日前の会社の先輩からGroovyという言語を教えてもらった。以下Wikipedia(http://ja.wikipedia.org/wiki/Groovy)からの引用。 その他、Python、…などからも言語機能が取り込まれている。 Groovyではコードブロックをファーストクラス(一級市民)オブジェク…