add
같은 타입의 두 값을 더합니다. 여기저기 넘겨 쓸 수 있는 함수 형태입니다.
T add<T extends Object>(T a, T b) => (a as dynamic) + b as T;
강의
add(a, b)는 +를 함수 값으로 감싼 것입니다.
+로 동적 디스패치하기 때문에 이 연산자를 지원하는 것이라면
무엇이든 동작합니다 — num, String 연결,
심지어 List 연결까지 — 숫자와 문자열을 모두 받는 FxTS의
add와 같은 동작입니다.
진가는 인라인 (a, b) => a + b 대신 이항
(T, T) -> T 함수를 요구하는 API에서 드러납니다 —
가장 자연스러운 자리는 reduce/fold의 결합
함수입니다. 다만 이항 함수이므로 단항 map 콜백으로
쓰려면(모든 원소에 고정값을 더하는 경우) 한쪽을 직접 클로저로 묶어
주면 됩니다: (b) => add(n, b).
데모 1 · 기본
데모 2 · 리듀서로, 그리고 map용으로 클로저에 묶어서
직접 해 보기
연습: fold와 add를 사용해 모든 조각을
하나의 문자열로 이어 붙여 보세요.
관련 항목:
reduce / fold — add를 결합 함수로 쓰는 대표적인 자리 ·
sum — Iterable<num>을 위해 이미 준비된 합계 함수 ·
gt · gte · lt · lte — add에 대응하는 비교 함수들 ·
apply — 동적 인자 목록으로 임의의 함수를 호출