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) -> String.Index

Returns the position immediately after the given index.

func formIndex(after: inout String.Index)

Replaces the given index with its successor.

func index(before: String.Index) -> String.Index

Returns the position immediately before the given index.

func formIndex(before: inout String.Index)

Replaces the given index with its predecessor.

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

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

func formIndex(inout String.Index, offsetBy: Int)

Offsets the given index by the specified distance.

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

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

var indices: DefaultIndices<String>

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