그루비 (Groovy) : 클로저 또는 메소드


Answers

@Don이 말한 모든 것이 사실이지만, 나는 그 중 어떤 것도 그다지 중요하지 않다는 것을 모른다. 실행을 변경할 수있는 클로저의 대리자를 재정의 할 수 있지만 클로저를 전달하는 경우가 아니라면 (어쨌든 메서드로는 할 수없는 경우) 이러한 상황에 대해 실제로 염려 할 필요가 없습니다. 델리게이트와 함께 플레이하는 것은 기능이 아니라 책임입니다.

여분의 클래스 파일에서 발생할 수있는 성능에 관해서는 성능에 대해 걱정할 필요가 있다면 Groovy를 사용하는 이유는 무엇입니까?

내 의견은 그것이 정말로 중요하지 않다는 것이다. 팀에 오래된 Java 개발자가 많은 사람들이 있다면 메소드가 수행 할 클로저를 사용할 때 개발자가 싫어할 것입니다. 다른 한편, Groovy에 익숙한 사람은 폐쇄가 더 의미가있을 때 모든 방법을 혼란스럽게한다면 짜증이 날 것입니다.

tl; dr - 어렵고 빠른 규칙은 없으며 코드 가독성을 고려하여 올바른 판단을 내려야합니다.

Question

자유 변수에 액세스 할 필요가없는 경우에도 일반적인 방법 대신 모든 방법으로 클로저를 사용하는 습관이 있습니다. 그래서, 나는 이것을 사용할 것이다 :

def addNumbers = { left, right -> left + right }

.. 대신 이것 :

def addNumbers (left,right) { left + right }

이 나쁜 습관인가? 나는 메서드를 통해 클로저를 사용할 때 얻을 수있는 추가적인 힘을 훨씬 선호하며 구문을 선호한다.

감사!




Related