identity
인자를 그대로 반환합니다.
T identity<T>(T a) => a;
강의
identity는 라이브러리에서 가장 단순한 함수이면서 가장
유용한 함수 중 하나입니다. 값을 받아 그대로 돌려줄 뿐이죠. 그 자체만
보면 아무 쓸모 없어 보입니다. 진가는 어떤 API가 함수를 요구하는데
정작 아무것도 변환하고 싶지 않을 때 드러납니다 —
groupBy/sortBy의 기본 키 함수, 디스패치
테이블의 자리 채우기 분기, 조건부 파이프라인에서 "아무것도 하지 않는"
쪽 같은 경우입니다.
identity는 제네릭이므로(T identity<T>(T a))
직접 (x) => x를 쓰지 않아도 단항 함수가 필요한 자리라면
어디든 들어맞습니다. 비동기 변형도, 체인 형태도 없습니다 — 값을 받아
값을 내놓는, 그냥 넘겨 주는 용도의 평범한 함수입니다.
데모 1 · 기본
직접 호출하는 경우와, "값 자체를 기준으로 그룹화"가 딱 필요한 그룹화 연산의 키 함수로 쓰는 경우입니다.
데모 2 · "아무것도 하지 않는" 분기로
문자열 변환을 모아 둔 디스패치 테이블에서 한 항목만 의도적으로 아무
일도 하지 않게 하는 예입니다 — 손으로 쓴 no-op 람다 대신
identity가 그 자리를 깔끔하게 채웁니다.
직접 해 보기
연습: sortBy는 키 함수를 받습니다. identity를
키 함수로 넘겨 이 단어 리스트를 문자열 자연 순서로 정렬해 보세요.