The value to use as the initial accumulating value. initial
is passed to next
the first time the closure is executed.
初めから蓄積される値として使われる値。initial
はnext
に、クロージャが実行される最初の時に渡されます。
reduce(_:_:)
Availability 有効性
- iOS 15.0+
- iPadOS 15.0+
- macOS 12.0+
- Mac Catalyst 15.0+
- tvOS 15.0+
- watchOS 8.0+
- Xcode 13.0+
Technology
- Foundation ファウンデーション
Declaration 宣言
func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, Character
) throws -> Result) rethrows -> Result
Parameters パラメータ
initialResult
Result Partial Result Result Partial Result nextPartialResult
A closure that combines an accumulating value and an element of the sequence into a new accumulating value, to be used in the next call of the
next
closure or returned to the caller. あるクロージャ、それはある蓄積値とシーケンスのある要素を新しい蓄積値へと結合して、Partial Result next
クロージャの次の呼び出しにおいて使われるか呼出し側に返されるようにします。Partial Result
Return Value 戻り値
The final accumulated value. If the sequence has no elements, the result is initial
.
最終的に蓄積された値。シーケンスが1つも要素を持たないならば、結果はinitial
です。
Discussion 議論
Use the reduce(_:
method to produce a single value from the elements of an entire sequence. For example, you can use this method on an array of numbers to find their sum or product.
reduce(_:
メソッドを使って、あるシーケンス全体の中の要素から単一の値を生成してください。例えば、あなたはこのメソッドを数値からなる配列で使うことで、それらの合計を見つけるまたは生成できます。
The next
closure is called sequentially with an accumulating value initialized to initial
and each element of the sequence. This example shows how to find the sum of an array of numbers.
next
クロージャはinitial
に初期化された蓄積値およびシーケンスの各要素とともに連続して呼び出されます。この例は、どのように数からなる配列の合計を見出すかを示します。
When numbers
is called, the following steps occur:
numbers
が呼び出される時、以下の段階が生じます:
The
next
closure is called withPartial Result initial
—Result 0
in this case—and the first element ofnumbers
, returning the sum:1
.next
クロージャが、Partial Result initial
—この場合ではResult 0
とnumbers
の最初の要素とともに呼び出されて、その合計:1
を返します。The closure is called again repeatedly with the previous call’s return value and each element of the sequence. クロージャは、直前の呼び出しの戻り値とシーケンスの各要素とともに繰り返して再び呼び出されます。
When the sequence is exhausted, the last value returned from the closure is returned to the caller. シーケンスが使い尽くされる時、クロージャから返される最後の値が呼出し側へ帰されます。
If the sequence has no elements, next
is never executed and initial
is the result of the call to reduce(_:
.
シーケンスが1つも要素を持たないならば、next
は決して実行されません、そしてinitial
はreduce(_:
への呼び出しの結果となります。
Complexity: O(n), where n is the length of the sequence. 計算量:O(n)、ここでnはシーケンスの長さです。