join

모든 원소를 구분자로 이어 붙여 하나의 문자열로 만듭니다.

String join<A>(String sep, Iterable<A> iterable) // data-first: separator FIRST Future<String> joinAsync<A>(String sep, FxAsyncIterable<A> iterable) String Fx.join([String separator = '']) // chain (sync, inherited from Iterable) Future<String> FxAsync.join([String sep = ',']) // chain (async)

강의

join은 종결 연산자입니다. 파이프라인 전체를 끌어당기면서 각 원소에 toString()을 호출하고, 그 결과들을 사이사이 sep을 넣어 이어 붙입니다.

인자 순서에 주의하세요. 최상위의 data-first join구분자를 먼저 받습니다: join(', ', iterable). 이는 FxTS의 관례(어디서나 data-first)를 따른 것으로, 이터러블을 수신자로 받고 구분자를 유일한 인자로 받는 Dart 자체의 Iterable.join(separator) 메서드와는 정반대입니다.

이 차이는 체인 형태에도 미묘하게 스며듭니다. 동기 체인에서 .join(...)은 그냥 Dart 내장 Iterable.join이고, 인자를 생략하면 기본 구분자가 ''(빈 문자열)입니다. 반면 FxAsync.join은 FxDart에서 직접 구현했고 기본 구분자가 ','입니다 — FxTS의 기본값을 그대로 따른 것입니다. 인자를 생략했을 때 두 체인이 똑같이 동작하리라고 가정하지 마세요.

데모 1 · 기본 사용법과 두 가지 기본값

데모 2 · 비동기, 그리고 서로 다른 기본값

직접 해 보기

연습: 컬럼들을 ','로 이어 붙여 하나의 CSV 헤더 행으로 만들어 보세요.

관련 항목: sort — 이어 붙이기 전에 원소 정렬하기 · map — 이어 붙이기 전에 각 원소 포맷하기 · size — 또 하나의 간단한 문자열·개수 종결 연산자