2011-02-09 5 views
15

이것은 사람들이 매개 변수를 취하는 메서드 호출에 대괄호를 사용해야하는지 여부에 대한 상당히 일반적인 질문입니다. 즉groovy : 메서드 호출시 대괄호를 사용 하시겠습니까?

다음
def someFunc(def p) { 
... 
} 

전화 :

someFunc "abc" 

대 ...

someFunc("abc") 

일관성이 단지 질문인가, 또는 각각의 특정 사용 사례가있다?

답변

18

주로 일관성과 가독성에 대한 문제이지만, Groovy는 항상 괄호를 생략하지 못하게합니다. 하나를 들어, 중첩 된 메소드 호출에 괄호를 생략 할 수 없습니다

def foo(n) { n } 
println foo 1 // won't work 

Style guide에서 "Omitting parentheses"단원을 참조하십시오.

3

언제 제거해야하는지 구체적인 경우는 없지만 언제든지 사용할 수 있습니다. 그들을 내보내는 것이 더 귀엽습니다.
할 수없는 경우가 있습니다 (예 : 목록 /지도 매개 변수를 아래 첨자 연산자, 중첩 된 호출 또는 명령문이 할당 일 때 혼란스럽게 할 수 있음)하지만 가장 일반적인 호출은 모호성이 없으면 괄호를 사용할 수 없습니다.
(삭제 몇 줄, 난 그냥 게시물이 정보와 이미이 있음을 통지받은대로) 그루비 1.8 당신은
http://groovyconsole.appspot.com/script/355001

+0

확인 그냥 "소음"때를 생략, 그래서 이것은 다음 확장 성 지점을 수 있을까? if와 loop에서 개폐식 중괄호를 사용하지 않는 사람들과의 오래된 이슈처럼? 즉, 사람들은 나중에 누군가를 추가해야하는 경우에 항상 대괄호를 사용해야합니다 ...? – Steven

+0

만약 당신이 나중에''foo ''대신''foo ''대신에''foo ('x')'와 같이 명령문에서 괄호를 사용하는 것이 더 나을 것이라면, println foo ('x')'나는 그것들을 버리고,'foo 'x' '를 사용하고 필요할 때만 괄호를 추가한다고 말하고 싶습니다. – jpertino

관련 문제