文書   >   Swift   >   Array   >   enumerated()
インスタンスメソッド
enumerated()
(n、x) のペアのシーケンスを返します。ここで、n はゼロから始まる連続した整数を表し、x はシーケンスの要素を表します。
宣言
戻り値
シーケンスを列挙するペアのシーケンス。
議論
この例では、文字列 "Swift" の文字を列挙して、各文字を文字列内の位置とともに印刷します。
for (n, c) in "Swift".enumerated() {
print("\(n): '\(c)'")
}
// Prints "0: 'S'"
// Prints "1: 'w'"
// Prints "2: 'i'"
// Prints "3: 'f'"
// Prints "4: 't'"
コレクションを列挙すると、各ペアの整数部分は列挙のカウンターになりますが、必ずしもペアになっている値のインデックスにはなりません。これらのカウンタは、Array や ContiguousArray など、ゼロから始まる整数インデックス型のコレクションの場合にのみインデックスとして使用できます。他のコレクションでは、カウンタは範囲外になっているか、インデックスとして使用するのに不適切な型である可能性があります。インデックスを使用してコレクションの要素を反復処理するには、zip(_:_:) 関数を使用します。
この例では、セットのインデックスと要素を繰り返し処理して、5 文字以下の名前のインデックスで構成されるリストを作成します。
let names: Set = ["Sofia", "Camilla", "Martina", "Mateo", "Nicolás"] var shorterIndices: [Set<String>.Index] = [] for (i, name) in zip(names.indices, names) { if name.count <= 5 { shorterIndices.append(i) } }
shortIndices 配列が names セット内の短い名前のインデックスを保持するようになったので、これらのインデックスを使用してセット内の要素にアクセスできるようになりました。
for i in shorterIndices {
print(names[i])
}
// Prints "Sofia"
// Prints "Mateo"
複雑さ:O(1)
以下も見よ
配列の要素を繰り返し処理
func forEach((Element) -> Void)
for-in ループと同じ順序で、シーケンス内の各要素に対して与えられたクロージャを呼び出します。
func makeIterator() -> IndexingIterator<Array<Element>>
コレクションの要素に対する反復因子を返します。
コレクション内の要素数以下の値。
トップへ
トップへ
トップへ
トップへ
トップへ