文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >  sequence(first:next:)
汎用関数
sequence(first:next:)
next の first と遅延したアプリケーションの繰り返しから形成されたシーケンスを返します。
宣言
パラメータ
first | シーケンスから返されるべき最初の要素。 |
next | 前のシーケンス要素を受け入れ、次の要素を返すクロージャ。 |
戻り値
first から始まり、前の要素を next に渡すことによって返されるすべての値を続けるシーケンス。
議論
シーケンスの最初の要素は常に first であり、各連続する要素は前の要素で next を呼び出した結果です。next は、nil を返すとシーケンスが終了します。next が nil を決して返さない場合、シーケンスは無限になります。
この関数は、C スタイルの for ループを使用して以前に処理された多くのケースを置き換えて使用できます。
例えば:
// Walk the elements of a tree from a node up to the root for node in sequence(first: leaf, next: { $0.parent }) { // node is leaf, then leaf.parent, then leaf.parent.parent, etc. } // Iterate over all powers of two (ignoring overflow) for value in sequence(first: 1, next: { $0 * 2 }) { // value is 1, then 2, then 4, then 8, etc. }
以下も見よ
動的シーケンス
func sequence<T, State>(state: State, next: (inout State) -> T?)
next の遅延したアプリケーションの繰り返しから、変異可能な state に形成されたシーケンスを返します。