gt · gte · lt · lte

연산자 대신 함수 값으로 쓰는 data-first 비교 함수입니다.

bool gt(Object? a, Object? b) // a > b bool gte(Object? a, Object? b) // a >= b bool lt(Object? a, Object? b) // a < b bool lte(Object? a, Object? b) // a <= b

강의

gt, gte, lt, lte는 네 가지 순서 비교 연산자를 data-first 함수로 감싼 것입니다. gt(a, b) == (a > b)처럼 첫 번째 인자가 왼쪽에 오며, 연산자와 순서가 정확히 같습니다. 덕분에 중위 연산자 대신 함수를 요구하는 API 어디에나 그대로 비교자로 넘길 수 있습니다.

내부적으로는 두 값이 서로 Comparable해야 하고, 한 가지 예외를 빼면 런타임 타입까지 정확히 같아야 합니다. numnum, StringString은 섞일 수 있어 intdouble을 비교할 수 있지만, 그 외에 타입이 맞지 않으면 조용히 변환하는 대신 ArgumentError를 던집니다.

네 함수 모두 커링되지 않습니다 — gt(5) 같은 부분 적용은 없습니다. (예를 들어 filter에 넘길) 재사용 가능한 단항 술어가 필요하다면 한쪽을 고정하는 짧은 클로저를 쓰면 됩니다. (b) => gt(b, 5)처럼요.

데모 1 · 기본 사용법과 타입 불일치 오류

데모 2 · 커링해서 filter 술어로 쓰기

직접 해 보기

연습: 나이가 18 이상인(gte) 성인만 남겨 보세요.

관련 항목: add — 이 비교 함수들에 대응하는 산술 함수 · sort / sortBy — lt/gt로 비교자 만들기 · min / max — 같은 비교의 집계 버전 · negate — 커링한 비교 술어 뒤집기