文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range   >   forEach(_:)
インスタンスメソッド
forEach(_:)
for-in ループと同じ順序で、シーケンス内の各要素の与えられたクロージャを呼び出します。
宣言
func forEach(_ body: (Bound) throws -> Void) rethrows
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
パラメータ
body | シーケンスの要素をパラメータとして取るクロージャ。 |
議論
以下の例の 2 つのループは、同じ出力を生成します。
let numberWords = ["one", "two", "three"] for word in numberWords { print(word) } // Prints "one" // Prints "two" // Prints "three" numberWords.forEach { word in print(word) } // Same as above
forEach メソッドの使用は、for-in ループとは 2 つの重要な点で異なります。
- break または continue 文を使用して、body クロージャの現在の呼び出しを終了したり、後続の呼び出しをスキップすることはできません。
- body クロージャで return 文を使用すると、現在の本体の呼び出しからのみ終了し、外側の範囲からは終了せず、後続の呼び出しをスキップしません。
以下も見よ
Range の要素を繰り返し処理
func enumerated() -> EnumeratedSequence<Range<Bound>>
ペア (n、x) のシーケンスを返します。ここで n はゼロで始まる連続する整数を表し、x はシーケンスの要素を表します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func makeIterator() -> IndexingIterator<Range<Bound>>
コレクションの要素の反復子 (iterator) を返します。
シーケンス内の要素の数以下の値。非破壊的に計算されます。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
コレクション内の要素の数以下の値。