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를 키 함수로 넘겨 이 단어 리스트를 문자열 자연 순서로 정렬해 보세요.

관련 항목: always — 그대로 통과시키는 대신 상수를 반환합니다 · tap — 그대로 통과시키되, 먼저 부수 효과를 실행합니다 · cases — 술어를 사용하는 디스패치 테이블입니다 · sortBy — 키 함수가 흔히 쓰이는 자리입니다