Instance Method

index(_:offsetBy:)

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

Declaration

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

Parameters

i

A valid index of the collection.

n

The distance to offset i. n must not be negative unless the collection conforms to the BidirectionalCollection protocol.

Return Value

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

Discussion

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

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

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

Complexity: O(1) if the collection conforms to RandomAccessCollection; otherwise, O(n), where n is the absolute value of n.