インスタンスメソッド


flatMap(_:)


与えられた変換を呼び出した結果とこのシーケンスの各要素を連結する非同期シーケンスを作成します。


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+

tvOS 13.0+ visionOS 1.0+ watchOS 6.0+

@preconcurrency
func flatMap<SegmentOfResult>(_ transform: @escaping (Self.Element) async ->
  SegmentOfResult) -> AsyncFlatMapSequence<Self, SegmentOfResult> where
  SegmentOfResult : AsyncSequence, Self.Failure == Never, 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 "













トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ