entries
Map의 (키, 값) 쌍을 레코드로 내보냅니다 — Map을 체이닝하기 위한 진입점입니다.
Iterable<(K, V)> entries<K, V>(Map<K, V> map)
강의
Dart의 Map은 Iterable이 아닙니다.
List와는 달라서 fx(someMap)을 바로 쓸 수
없죠. entries가 그 다리 역할을 합니다. 맵의 각 키/값
쌍을 (K, V) 레코드로 내보내서, 평범한 지연
Iterable을 만들어 줍니다. 이건 실제로
fx()로 감쌀 수 있고, 다른 것들처럼 체이닝하면 됩니다. JS 객체에 대해
같은 일을 하는 FxTS의 entries를 그대로 옮긴 것입니다.
쌍이 Dart 레코드이므로 for 루프에서 바로 구조 분해할 수
있고 — for (final (key, value) in entries(map)) —
구조 분해가 불편한 경우에는
map/filter 콜백 안에서 위치 필드
.$1(키)과 .$2(값)로 접근하면 됩니다.
entries도 여기 나오는 다른 것들처럼 지연 평가되지만,
Map의 엔트리는 무한하지 않으므로 take로
범위를 제한할 이유는 거의 없습니다 — 얼마나 끌어올지 조절하기보다는
Map을 체이닝 가능한 형태로 바꾸는 쪽에 가깝습니다.
데모 1 · 기본
데모 2 · Map을 체이닝하기
entries(map)을 fx()로 감싸서 Map의 내용을
필터링하고 다시 빚어 보세요:
직접 해 보기
연습: 점수가 담긴 Map을 "name: PASS/FAIL" 문자열로 바꿔 보세요.
관련 항목:
keys — Map의 키만 ·
values — Map의 값만 ·
fromEntries — 그 역방향: 쌍으로부터 다시 Map을 만듭니다 ·
fx — entries의 결과가 흘러 들어가는 체인