インスタンスメソッド


enumerated()


ペア (n, x) のシーケンスを返します。ここで、n はゼロから始まる連続する整数を表し、x はシーケンスの要素を表します。


iOS 15.0+ iPadOS 15.0+ macOS 12.0+ Mac Catalyst 15.0+

tvOS 15.0+ watchOS 8.0+ visionOS 1.0+ Xcode 13.0+

func enumerated() -> EnumeratedSequence<AttributedString.UnicodeScalarView>





戻り値


シーケンスを列挙するペアのシーケンス。



議論


以下の例では、文字列 "Swift" の文字を列挙し、各文字を文字列内の位置とともに出力します。


  1. for (n, c) in "Swift".enumerated() {
  2. print("\(n): '\(c)'")
  3. }
  4. // Prints "0: 'S'"
  5. // Prints "1: 'w'"
  6. // Prints "2: 'i'"
  7. // Prints "3: 'f'"
  8. // Prints "4: 't'"


コレクションを列挙する場合、各ペアの整数部分は列挙のカウンターになりますが、必ずしもペアの値の指標であるとは限りません。これらのカウンターは、ArrayContiguousArray など、ゼロから始まる整数指標のコレクションのインスタンスでのみ指標として使用できます。他のコレクションの場合、カウンターは範囲外であるか、指標として使用するには間違った型である可能性があります。その指標を使用してコレクションの要素を反復処理するには、zip(_:_:) 関数を使用します。


以下の例では、set の指標と要素を反復処理し、5 文字以下の名前の指標で構成されるリストを作成します。


  1. let names: Set = ["Sofia", "Camilla", "Martina", "Mateo", "Nicolás"]
  2. var shorterIndices: [Set<String>.Index] = []
  3. for (i, name) in zip(names.indices, names) {
  4. if name.count <= 5 {
  5. shorterIndices.append(i)
  6. }
  7. }


今や、shorterIndices 配列が names セット内の短い名前の指標を保持したので、これらの指標を使用してセット内の要素にアクセスできるようになります。


  1. for i in shorterIndices {
  2. print(names[i])
  3. }
  4. // Prints "Sofia"
  5. // Prints "Mateo"


複雑さ: O(1)















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ