我是Groovy的新手,我正在嘗試爲某些特定任務編寫迷你DSL。 爲此我一直在試圖解決這樣下面一個問題: 我想通過調用這個代碼打印(和/或返回),5(不使用括號):帶Groovy的DSL - >傳遞參數值
give me 5
我的預期那麼下面的定義將起作用:
def give = {clos -> return clos}
def me = {clos -> println clos; return clos}
但實際上它沒有。請幫助我如何定義「給」和「我」,以便返回值爲5的表達式「給我5」,其中我必須是封閉的,給出也可以是metaClass,屬性等。
提前致謝! Iv
謝謝!這正是我所期待的。 您可以參考一些我可以閱讀更多關於[:]。with with Default構造的地方嗎? – ivita 2012-08-10 09:45:32
@ivita不用擔心!它的定義[這裏](http://groovy.codehaus.org/groovy-jdk/java/util/Map.html#withDefault%28groovy.lang.Closure%29)。有一點需要注意的是,打印出的5''實際上是一個字符串,而不是一個「整數」。這是因爲它試圖將'5'作爲屬性名稱(字符串),所以也返回一個字符串 – 2012-08-10 09:52:21
我需要它作爲字符串:-)謝謝! – ivita 2012-08-10 12:30:51