XCode 16.4 日本語化計画
与えられた変換を呼び出した結果とこのシーケンスの各要素を連結する非同期シーケンスを作成します。
@preconcurrency func flatMap<SegmentOfResult>(_ transform: @escaping (Self.Element) async -> SegmentOfResult) -> AsyncFlatMapSequence<Self, SegmentOfResult> where SegmentOfResult : AsyncSequence, SegmentOfResult.Failure == Never
transform
マッピングクロージャ。transform は、このシーケンスの要素をそのパラメーターとして受け入れ、AsyncSequence を返します。
transform によって生成されたすべての非同期シーケンス内のすべての要素が含まれる、単一の平坦化された非同期シーケンス。
あなたの変換によって各要素に対して非同期シーケンスが生成される場合、このメソッドを使用して単一レベルの非同期シーケンスを受け取ります。
以下の例では、Counter という非同期シーケンスが 1 から 5 までの Int 値を生成します。変換クロージャは受け取った Int を取り、その値までカウントする新しい Counter を返します。例えば、変換が基本シーケンスから 3 を受け取ると、1、2、3 という値を生成する新しい Counter を作成します。flatMap(_:) メソッドは、結果として得られるシーケンスのシーケンスを単一の AsyncSequence に「フラット化」します。
let stream = Counter(howHigh: 5)
.flatMap { Counter(howHigh: $0) }
for await number in stream {
print(number, terminator: " ")
}
// Prints "1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 "