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 has no effect if it is less than i. Likewise, if distance < 0, limit has no effect if it is greater than i. 限度として使うためのそのコレクションの有効なインデックス。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]
if let i = numbers.index(numbers.startIndex,
                         offsetBy: 4,
                         limitedBy: numbers.endIndex) {
    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)

Relationships 関係

From Protocol 由来プロトコル

See Also 参照

Manipulating Indices インデックスを操る