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 헤더 행으로 만들어 보세요.