groovyのクロージャ 練習
2008/09/02
groovy
クロージャー
Groovyです。
クロージャです。
Groovyのクロージャの書き方が好きかも。
def localMethod() {
def v = new Date()
return { println v }
}
def clos = localMethod()
Thread.sleep(3000)
println new Date()
// 実行
clos()
def v = new Date()
return { println v }
}
def clos = localMethod()
Thread.sleep(3000)
println new Date()
// 実行
clos()
結果
Tue Sep 02 22:05:48 JST 2008
Tue Sep 02 22:05:45 JST 2008
次に下記のような書き方ができることに僕は何かしらの可能性をみているのだった。
def c = [
"a1": { println "==>a1"},
"a2": { println "==>a2"},
"a3": { println "==>a3"}
]
c.a1()
c['a2']()
def clos = c['a3']
clos()
"a1": { println "==>a1"},
"a2": { println "==>a2"},
"a3": { println "==>a3"}
]
c.a1()
c['a2']()
def clos = c['a3']
clos()
結果
==>a1
==>a2
==>a3
ふたつめのこのc['a2']()の書き方がかっこいいと思うのだけど。
あと僕がJSONにたいしてなんとなく可能性をみているのは、キー:値の値にやはりプログラムを載せれそうなところなんだよね。
: