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: Self.Index, offsetBy distance: Int
, limitedBy limit: Self.Index) -> Self.Index?
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
を返します。
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
より小さくあるべきです。
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])
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)
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
として渡されるインデックスがそれらの境界を越えて補うのを防止するのでない限りは。