[英]In Groovy, is there a way to know the name of a variable holding a closure?
標題可能會產生誤導。 我真正想要的是知道控制器中閉包的名稱。 但是Groovy中的閉包始終是匿名的,因此閉包本身沒有名稱。 但是閉包被分配給一個變量,我想知道我是否可以獲得該變量的名稱。 也許一個例子會有所幫助。 在Grails控制器中想象我有以下內容:
def get_data = {
Map results = [ 'errorCode' = -1, 'method' : 'get_data' ]
...
render results as JSON
}
在Map中稱為結果,有一個名為'method'的元素,我希望將其分配給此閉包的名稱(或者將閉包更加精確的變量)。 這可能嗎? 這里的想法是我想概括結果圖並想要自動填充一個名為'method'的元素。 本能地感覺這應該是可能的,但我沒有發現任何類似的用例來說明如何。 任何幫助非常感謝。
我不認為你可以在一般情況下獲得變量的名稱。 這只是一個參考,閉包可以分配給它們中的許多。
但是,在控制器代碼中獲取當前操作的名稱非常簡單:
def get_data = {
def results = ['method': actionName]
}
見文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.