2011-10-07 2 views
0

groovy/grails에서 메소드를 정의하고 사용할 수있는 곳이 궁금합니다.Grails, 메소드는 어디에 정의 할 수 있습니까?

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

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

이 가능, 또는 util는 초기화의 외부에서 정의 될 필요가 않습니다 부트 스트랩 초기화에서 특히

, 나는 이런 식으로 뭔가를 원하십니까?

답변

4

함수 내에서 명명 된 함수를 정의 할 수 없다고 생각합니다. 대신 클로저를 사용할 수 있습니다.

def init = { 

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

'init' 이외의 함수를 만드는 데 아무런 해가 없습니다. –

+0

init 내에서 클로저로 정의 할 때의 이점 중 하나는 init에 정의 된 변수에 액세스 할 수 있다는 것입니다. – gkamal

관련 문제