文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range   >   reduce(_:_:)


汎用インスタンスメソッド


reduce(_:_:)


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





宣言


func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, 
	Bound) throws -> Result) rethrows -> Result

BoundStrideable に準拠し、Bound.StrideSignedInteger に準拠する場合に使用可能です。


パラメータ


initialResult初期累積値として使用する値。initialResult は、クロージャが最初に実行されるときに nextPartialResult に渡されます。
nextPartialResultnextPartialResult クロージャの次の呼び出しで使用されるか、呼び出し元に返される、新しい累積値に累積値とシーケンスの要素を組み合わせたクロージャ。


戻り値


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


議論


reduce(_:_:) メソッドを使用して、シーケンス全体の要素から単一の値を生成します。たとえば、数値の配列でこのメソッドを使用して、その合計または積を見つけることができます。


nextPartialResult クロージャは、initialResult とシーケンスの各要素に初期化された累積値で順次呼び出されます。この例では、数値の配列の合計を見つける方法を示しています。


let numbers = [1, 2, 3, 4]
let numberSum = numbers.reduce(0, { x, y in
    x + y
})
// numberSum == 10


numbers.reduce(_:_:) が呼び出されると、以下の手順が実行されます。


  1. nextPartialResult クロージャは、この場合は 0 である initialResult で呼び出され、numbers の最初の要素である、合計 1 を返します。

  2. クロージャは、前回の呼び出しの戻り値とシーケンスの各要素で繰り返し呼び出されます。

  3. シーケンスが使い尽くされると、クロージャから返された最後の値が呼び出し元に返されます。

シーケンスに要素がない場合、nextPartialResult は決して実行されず、initialResultreduce(_:_:) の呼び出しの結果になります。


複雑さ:O(n)、ここで n はシーケンスの長さです。


以下も見よ





Range の要素を変換





目次
Xcode の新機能

  • 言語:Swift
  • SDK
  • Xcode 10.0+
  • フレームワーク
  • Swift 標準ライブラリ
  • 宣言
  • パラメータ
  • 戻り値
  • 議論
  • 以下も見よ












  • トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)