2011-10-07 14 views
0

私はgroovy/grailsでどこのメソッドを定義して使用できるのか不思議です。Grailsでは、メソッドはどこで定義できますか?

具体的にブートストラップのinitに、私はこのような何かをしたいと思います:

def init = { 
    def util() { 
    return 'so helpful!' 
    } 

    def someObj = new someObj(phrase: util()).save() 
} 

が可能これは、またはutilは、initの外で定義する必要があるのでしょうか?

答えて

4

名前付き関数を関数内で定義することはできないと思います。代わりにクロージャを使用することができます。

def init = { 

    def util = {-> 
     "hello" 
    } 
    def someObj = new someObj(phrase: util()).save() 
} 
+0

'init'以外の関数の作成にも害はありません。 –

+0

init内でクロージャーとして定義する利点の1つは、initで定義された変数にアクセスできることです。 – gkamal

関連する問題