18.3 카드 비교하기
내장 타입에 대해서는 값을 비교해서 어느 쪽이 보다 크다, 보다 작다, 같다를 판단하는 관계 연산자(<, >, == 등)가 있다. 프로그래머 정의 타입에 대해서도 ‘보다 작다(less than)’를 뜻하는 _ _lt_ _ 메서드를 작성해서 내장 연산자의 동작을 재정의(override)할 수 있다.
_ _lt_ _는 self와 other 두 개를 인자로 받아서 self가 other보다 작으면 True를 반환한다.
카드의 올바른 순서는 명확하지 않다. 예를 들어 클럽 3과 다이아몬드 2중에 어떤 것이 더 나은 카드인가? 하나는 순위가 높고, 다른 하나는 문양이 높다. 카드를 비교하려면 순위와 문양 중에 더 중요한 것을 정해야 한다.
정답은 게임의 종류에 따라 다르다, 이지만 여기서는 간단히 하기 위해 문양이 더 중요하다고 결정하겠다. 따라서 모든 스페이드가 모든 다이아몬드보다 순위가 높고, 나머지 문양에 대해서도 마찬가지 규칙이 적용된다.