Instance Method

index(_:offsetBy:)

Returns an index that is the specified distance from the given index.

Declaration

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

Parameters

i

A valid index of the collection.

distance

The distance to offset i.

Return Value

An index offset by distance from the index i. If distance is positive, this is the same value as the result of distance calls to index(after:). If distance is negative, this is the same value as the result of abs(distance) calls to index(before:).

Discussion

The following example obtains an index advanced four positions from an array’s starting index and then prints the element at that position.

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

The value passed as distance must not offset i beyond the bounds of the collection.

Complexity: O(1)

See Also

Manipulating Indices

func index(after: Int) -> Int

Returns the position immediately after the given index.

func formIndex(after: inout Int)

Replaces the given index with its successor.

func index(before: Int) -> Int

Returns the position immediately after the given index.

func formIndex(before: inout Int)

Replaces the given index with its predecessor.

func formIndex(inout Int, offsetBy: Int)

Offsets the given index by the specified distance.

func index(Int, offsetBy: Int, limitedBy: Int) -> Int?

Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.

func formIndex(inout Int, offsetBy: Int, limitedBy: Int) -> Bool

Offsets the given index by the specified distance, or so that it equals the given limiting index.

func distance(from: Int, to: Int) -> Int

Returns the distance between two indices.

var indices: Range<Int>

The indices that are valid for subscripting the collection, in ascending order.