2014-03-18 46 views
1

我正在使用grails應用程序進行新的工作。我對這個 - >運算符在grails中感到困惑。 任何人都可以給我清楚的概念嗎? 或給我任何關於此的參考,這對我來說很簡單。 我已經在閱讀在線文檔和一些書籍,但我仍然對此操作符和用法感到困惑。- >運算符在grails中的用法和用法是什麼?

+5

閱讀關於[關閉](http://groovy.codehaus.org/Closures) – Reimeus

回答

7

這是Groovy閉包中的參數指示符。你可以找到更多關於closures here

->是一個表示Groovy中閉包的參數列表結束的符號。

在第一個示例中(註釋中給出),您有一個名爲printSum的閉包,它需要兩個參數; ab

def printSum = { a, b -> 
    print a+b 
} 

在第二個例子中(在註釋中給出的),你有一個名爲標準稱爲oldPublicationsLargerThan,它需要叫pageCount一個參數。

oldPublicationsLargerThan { pageCount -> 
    def now = new Date() 
    lt 'datePublished', now - 365 
    gt 'numberOfPages', pageCount 
} 
+1

這裏def printSum = {a,b-> print a + b}表示a,b表示打印a + b或其他東西? – Rassel

+1

oldPublicationsLargerThan {PAGECOUNT - > DEF現在=新日期() LT 'datePublished',現在 - 365 GT 'numberOfPages',PAGECOUNT }另一示例,但仍confused.can你瞭解這個解釋? – Rassel

+0

我不明白還有什麼可以說明的。這就好像我們爲什麼要在方法聲明中使用''''''。 – dmahapatro

5

那個細線箭頭是一個參數列表定界符。

閉包參數列表的語法可以大致轉換爲方法參數列表。

這是封:

def criteria = { a, b -> 
    return a + b 
} 

這是該方法的版本:

def criteria(a, b) { 
    return a + b 
} 

瓶蓋有更多的功能,雖然。

+2

你也可以在沒有這個「細箭頭」的情況下關閉,第一個參數會被groovy自動命名爲「it」。 – bschipp

+0

謝謝你的回答@威爾 – Rassel