unless
술어가 거짓일 때 콜백을 적용하고, 그렇지 않으면 값을 그대로 반환합니다.
T unless<T>(bool Function(T) predicate, T Function(T) callback, T value)
강의
unless는 조건을 뒤집은 when입니다.
unless(predicate, callback, value)는
callback(value)를 실행하되,
predicate(value)가 false일 때만 실행합니다.
술어가 참이면 value를 손대지 않고 그대로 반환합니다. "이 조건이 이미 충족된 게
아니라면 기본값을 채워 넣는다"라는 흐름으로 자연스럽게 읽히므로 검증,
누락 데이터 보완, 예외 상황 정규화에 잘 맞습니다.
when과 마찬가지로 Dart에서는 두 분기가 모두 같은 타입
T를 반환해야 하며(유니온 반환 타입이 없습니다), 체인 형태도
없습니다 — 평범한 data-first 함수입니다.
데모 1 · 기본
데모 2 · 누락 데이터 보완하기
직접 해 보기
연습: unless로 아직 설정되지 않은 태그에
'general'을 채워 넣어 보세요.