2017-01-06 82 views
1

一類問題的方法,任何人都可以解釋DEF功能/ Grails中

def login() { 

    //some codes here 

} 

之間的差,以

def login = { 

    //some codes here 

} 

Grails中。謝謝!

+0

對不起,我只是一個新的groovy和grails編程。 – Raven

+0

http://stackoverflow.com/questions/9205209/why-should-grails-actions-be-declared-as-methods-instead-of-closures-and-what-di – Vahid

+0

你很可能想堅持使用方法除非你有一些非常具體的用例,否則grails不會推薦關閉操作,甚至可能在將來的版本中被刪除。 –

回答

4

區別在於:def login() { .. }是一種方法,而def login = { ... }是閉包。老版本的Grails控制器使用閉包進行操作,而後來的版本使用方法(這是您可能會看到這種差異的地方)。

如果您想了解更多信息,請閱讀Groovy關閉。

+0

和方法首選作爲關閉操作。 –

+1

這取決於你試圖解決什麼問題。閉包不同於方法,因此可以以不同方式使用。除非你有理由使用閉包,否則應該只使用一種方法。這是我對你的個人建議。 –

+0

是的,這就是我所說的,在大多數情況下,方法優先於關閉,並且爲什麼grails團隊決定採用方法 –