インスタンスメソッド


reduce(_:_:)


与えられたクロージャを使用して非同期シーケンスの要素を結合した結果を返します。


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

tvOS 13.0+ visionOS 1.0+ watchOS 6.0+

func reduce<Result>(
    _ initialResult: Result,
    _ nextPartialResult: (Result, Self.Element) async throws -> Result
) async rethrows -> Result




パラメータ


initialResult

初期累積値として使用すべき値。nextPartialResult クロージャは、クロージャが初めて実行されるときに initialResult を受け取ります。


nextPartialResult

累積値と非同期シーケンスの要素を新しい累積値に結合するクロージャ。これは、nextPartialResult クロージャの次の呼び出しで使用されるか、呼び出し元に返されます。



戻り値


最終的な累積値。シーケンスに要素がない場合、結果は initialResult になります。



議論


シーケンス全体の要素から単一の値を生成するには、reduce(_:_:) メソッドを使用します。例えば、数値のシーケンスに対してこのメソッドを使用して、それらの和や積を求めることができます。


nextPartialResult クロージャは、initialResult に初期化された累積値とシーケンスの各要素を使用して、順次実行されます。


以下の例では、Counter という非同期シーケンスが 1 から 4 までの Int 値を生成します。reduce(_:_:) メソッドは、非同期シーケンスから受け取った値を合計します。


let sum = await Counter(howHigh: 4)
    .reduce(0) {
        $0 + $1
    }
print(sum)
// Prints "10"




以下も見よ


非同期の結果シーケンスへのアクセス


func min() async rethrows -> Self.Element?

比較可能な要素の非同期シーケンス内の最小要素を返します。


func min(by: (Self.Element, Self.Element) async throws -> Bool) async rethrows -> Self.Element?

与えられた述語を要素間の比較として使用して、非同期シーケンス内の最小要素を返します。


func prefix(Int) -> AsyncPrefixSequence<Self>

基本非同期シーケンスの最初の要素を含む、指定された最大長さまでの非同期シーケンスを返します。


func prefix(while: (Self.Element) async -> Bool) rethrows -> AsyncPrefixWhileSequence<Self>

与えられた述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンスを返します。


func reduce<Result>(into: Result, (inout Result, Self.Element) async throws -> Void) async rethrows -> Result

変更可能な初期値を与えられて、与えられたクロージャを使用して非同期シーケンスの要素を結合した結果を返します。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ