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


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


reduce(_:_:)


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





宣言


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


パラメータ


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 クロージャは、この場合は numbers の最初の要素である 0initialResult で呼び出され、合計の 1 を返します。

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

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

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



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





目次
Xcode の新機能

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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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