Scala와 Java 비교: “==”과 “equals” 처리

프로그래밍 인 스칼라를 보다 보니 15장에서 스칼라가 자바와 다른 점 중 “==” 비교에 대해서 혼동할 만한 것을 발견하였다. 아래는 책에서 설명하고 있는 내용.

Since == in Scala always delegates to equals, this means that elements of case classes are always compared structurally

스칼라는 위에 인용처럼 “==”는 equals 메서드에게 위임한다고 하니.. 실상 “==” 는 equals 호출이다.

참고로…
자바는 알다시피 “==”는 객체의 reference간 비교이기 때문에 객체 내부의 값이 같아도 false가 나온다. 그래서 보통 eqauls를 오버라이드해서 구현하고 아래와 같이 equals로 등가성을 비교하게 한다.