文書   >   Swift   >   Array   >   index(_:offsetBy:limitedBy:)


インスタンスメソッド


index(_:offsetBy:limitedBy:)


与えられたインデックスから指定された距離にあるインデックスを返します。ただし、その距離が与えられた制限のインデックスを超えている場合は除きます。





宣言


func index(_ i: Int, offsetBy distance: Int, limitedBy limit: Int) -> Int?


パラメータ


i配列の有効なインデックス。
distancei をオフセットすべき距離。
limit制限 (limit) として使用すべきコレクションの有効なインデックス。distance > 0 の場合、limiti より小さい場合、効果がありません。同様に、distance < 0 の場合、limiti より大きい場合、効果がありません。


戻り値


インデックス i からの distance だけオフセットされたインデックス。そのインデックスが動く方向において limit を超えていない限り。その場合、メソッドは nil を返します。


議論


以下の例では、配列の開始インデックスから 4 桁進んだインデックスを取得して、その位置に要素を出力します。この操作では、numbers の制限付きの .endIndex 値を超える必要はないため、成功します。


let numbers = [10, 20, 30, 40, 50]
if let i = numbers.index(numbers.startIndex,
                         offsetBy: 4,
                         limitedBy: numbers.endIndex) {
    print(numbers[i])
}
// Prints "50"


次の例では、numbers.startIndex から 10 桁の位置にあるインデックスを取得しようとしますが、失敗します。と言うのも、その距離 (distance) は limit として渡されたインデックスを超えているためです。


let j = numbers.index(numbers.startIndex,
                      offsetBy: 10,
                      limitedBy: numbers.endIndex)
print(j)
// Prints "nil"


distance として渡される値は、limit として渡されたインデックスがこれらの境界を超えたオフセットを防げない限り、コレクションの境界を超えて i をオフセットしてはいけません。



複雑さ: O(1)


関連





プロトコルから



以下も見よ





インデックスの操作

















トップへ












トップへ












トップへ












トップへ












トップへ
目次
Xcode の新機能

  • SDK
  • Xcode 8.0+
  • フレームワーク
  • Swift 標準ライブラリ

  • 宣言
  • パラメータ
  • 戻り値
  • 議論
  • 関連
  • 以下も見よ












  • トップへ












    トップへ












    トップへ












    トップへ