私はGroovyを使い慣れていて、特定のタスクのためにミニDSLを作成しようとしています。私は期待Groovyを使用したDSL - >パラメータ値を渡す
give me 5
:(括弧を使用せずに)このコードを呼び出すことにより、5 I印刷(および/または返却)したいと思い :私は以下のような問題を解決しようとしてきた。この目的のために
def give = {clos -> return clos}
def me = {clos -> println clos; return clos}
実際にはそうではありません。 "give me" 5を返すために "give"と "me"を定義する方法を教えてください。私はが閉鎖でなければなりません。を与えるともmetaClass、propertyなどである可能性があります。
ありがとうございます! Iv
ありがとう!それはまさに私が探していたものです。 [:]。withDefaultの構築についてもっと読むことができる場所を参照できますか? – ivita
@ivita心配はいりません! [ここ](http://groovy.codehaus.org/groovy-jdk/java/util/Map.html#withDefault%28groovy.lang.Closure%29)に定義されています。知っておかなければならないことの1つは、印刷している「5」が実際には文字列であり、「整数」ではないということです。これはプロパティ名(String)として '5'を取得しようとしているため、文字列も返します。 –
文字列として必要です:-)ありがとう! – ivita