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: AnyCollection<Element>.Index, offsetBy n: Int, limitedBy limit: AnyCollection<Element>.Index) -> AnyCollection<Element>.Index?

Parameters パラメータ

i

A valid index of the collection. そのコレクションの有効なインデックス。

distance

The distance to offset i. distance must not be negative unless the collection conforms to the BidirectionalCollection protocol. iを補う間隔。distanceは、そのコレクションがBidirectionalCollectionプロトコルに準拠するのでない限り、負であってはなりません。

limit

A valid index of the collection to use as a limit. If distance > 0, a limit that is less than i has no effect. Likewise, if distance < 0, a limit that is greater than i has no effect. 限度として使うためのそのコレクションの有効なインデックス。distance > 0ならば、iより少ない限度は効果を持ちません。同様に、distance < 0ならば、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 a string’s starting index and then prints the character at that position. The operation doesn’t require going beyond the limiting s.endIndex value, so it succeeds. 以下の例は、文字列の開始インデックスから4位置進んだインデックスを取得して、それからその位置の文字を出力します。演算は、限界であるs.endIndex値を越えていく必要はありません、それでそれは成功します。


let s = "Swift"
if let i = s.index(s.startIndex, offsetBy: 4, limitedBy: s.endIndex) {
    print(s[i])
}
// Prints "t"

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


let j = s.index(s.startIndex, offsetBy: 6, limitedBy: s.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) if the collection conforms to RandomAccessCollection; otherwise, O(k), where k is the absolute value of distance. 計算量:もしコレクションがRandomAccessCollectionに準拠するならば、O(1);そうでなければ、O(k)、そこでkdistanceの値の絶対値です。

Relationships 関係

From Protocol 由来プロトコル