Instance Method インスタンスメソッド

index(_:offsetBy:limitedBy:)

Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index. 与えられたインデックスから指定された隔たりのインデックスを返します、その隔たりが与えられた限界インデックスを超えない限りは。

Declaration 宣言

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

Parameters パラメータ

i

A valid index of the array. この配列の有効なインデックス。

distance

The distance to offset i. iを補う間隔。

limit

A valid index of the collection to use as a limit. If distance > 0, limit should be greater than i to have any effect. Likewise, if distance < 0, limit should be less than i to have any effect. 限度として使うためのコレクションの有効なインデックス。もしdistance > 0ならば、limitは、何らかの効果を持つためにiより大きくあるべきです。同様に、もしdistance < 0ならば、limitは、何らかの効果を持つためにiより小さくあるべきです。

Return Value 戻り値

An index offset by distance from the index i, unless that index would be beyond limit in the direction of movement. In that case, the method returns nil. distanceだけインデックスiから埋め合わされるあるインデックス、そのインデックスがその動く方向においてlimitを越えない限り。その場合には、このメソッドはnilを返します。

Discussion 議論

The following example obtains an index advanced four positions from an array’s starting index and then prints the element at that position. The operation doesn’t require going beyond the limiting numbers.endIndex value, so it succeeds. 以下の例は、配列の始まりから4位置進んだインデックスを入手して、それからその位置での要素を出力します。この操作は、限度であるnumbers.endIndex値を越えることを要求しません、それでそれは成功します。


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

The next example attempts to retrieve an index ten positions from numbers.startIndex, but fails, because that distance is beyond the index passed as limit. 次の例はnumbers.startIndexから10位置のインデックスをとりだすことを試みます、しかし失敗します、なぜならその間隔はlimitとして渡されるインデックスを越えるからです。


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

The value passed as distance must not offset i beyond the bounds of the collection, unless the index passed as limit prevents offsetting beyond those bounds. distanceとして渡される値は、このコレクションの境界を越えてiを補ってはいけません、limitとして渡されるインデックスがそれらの境界を越えて補うのを防止するのでない限りは。

Complexity: O(1) 計算量:O(1)