Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 모든 타입에 대해 == 는 항등(equality)을 의미합니다. 자바의 경우 == 는 원시 타입에 대해서는 항등을 의미하고 객체 타입에 대해서는 래퍼런스 일치(identity)를 의미한다는 점에서 혼란스럽습니다. Groovy는 자동 박싱을 이용하기 때문에 기존 자바의 규칙을 적용하는 것은 특히 혼란스러울 수 있습니다(x가 실제로 5라고 하더라도 x == 5는 false 일 수 있기 때문입니다). 따라서 단순화를 위해 == 는 equals() 를 의미하도록 수정되었습니다. 래퍼런스 일치를 검사할 필요가 있다면 foo.is(bar)와 같이 "is"를 사용하시면 됩니다. 또, is는 null에 대해 사용될 수 없지만, == 연산자는 null에 대해서도 사용 가능합니다.

주의할 점

  • 세미콜론(\;)은 생략 가능합니다. 쓰고 싶다면 쓰세요. 물론 한 줄에 여러 문장을 넣으려면 꼭 써야 합니다.
  • return 키워드도 생략 가능합니다.
  • 정적 메서드에서도 this 키워드를 쓸 수 있습니다. 이 때 this는 해당 class를 의미합니다.
  • 기본적으로 메서드는 private 이고 클래스는 public 입니다.
  • Groovy의 protected는 자바의 package-protected와 protected를 합친 것과 같습니다. 즉 같은 패키지 혹은 상속받은 클래스에서 접근 가능하게 됩니다.
  • 내부 클래스는 현재 지원되지 않습니다. 하지만 거의 모든 상황에서 내부 클래스 대신 클로저 를 사용하시면 됩니다.
  • 메서드 선언부의 throws 절은 현재 지원되지 않습니다. 왜냐하면 checked/unchecked 예외 사이에 차이가 없기 때문입니다.

...