더북(TheBook)

18.3 카드 비교하기

내장 타입에 대해서는 값을 비교해서 어느 쪽이 보다 크다, 보다 작다, 같다를 판단하는 관계 연산자(<, >, == 등)가 있다. 프로그래머 정의 타입에 대해서도 ‘보다 작다(less than)’를 뜻하는 _ _lt_ _ 메서드를 작성해서 내장 연산자의 동작을 재정의(override)할 수 있다.

_ _lt_ _selfother 두 개를 인자로 받아서 selfother보다 작으면 True를 반환한다.

카드의 올바른 순서는 명확하지 않다. 예를 들어 클럽 3과 다이아몬드 2중에 어떤 것이 더 나은 카드인가? 하나는 순위가 높고, 다른 하나는 문양이 높다. 카드를 비교하려면 순위와 문양 중에 더 중요한 것을 정해야 한다.

정답은 게임의 종류에 따라 다르다, 이지만 여기서는 간단히 하기 위해 문양이 더 중요하다고 결정하겠다. 따라서 모든 스페이드가 모든 다이아몬드보다 순위가 높고, 나머지 문양에 대해서도 마찬가지 규칙이 적용된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.