Instance Method

index(_:offsetBy:)

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

Declaration

func index(_ i: String.Index, offsetBy n: String.IndexDistance) -> String.Index

Parameters

i

A valid index of the collection.

n

The distance to offset i.

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(n), where n is the absolute value of n.

Relationships

From Protocol

See Also

Manipulating Indices

var startIndex: String.Index

The position of the first character in a nonempty string.

var endIndex: String.Index

A string’s “past the end” position—that is, the position one greater than the last valid subscript argument.

func index(after: String.Index)

Returns the position immediately after the given index.

func index(String.Index, offsetBy: String.IndexDistance, limitedBy: String.Index)

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

func distance(from: String.Index, to: String.Index)

Returns the distance between two indices.

var indices: DefaultBidirectionalIndices<String>

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