Instance Method

index(_:offsetBy:)

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

Declaration

func index(_ i: Dictionary<Key, Value>.Index, offsetBy distance: Int) -> Dictionary<Key, Value>.Index

Parameters

i

A valid index of the collection.

distance

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

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 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 distance must not offset i beyond the bounds of the collection.

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

See Also

Manipulating Indices

var startIndex: Dictionary<Key, Value>.Index

The position of the first element in a nonempty dictionary.

var endIndex: Dictionary<Key, Value>.Index

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

func index(after: Dictionary<Key, Value>.Index) -> Dictionary<Key, Value>.Index

Returns the position immediately after the given index.

func formIndex(after: inout Dictionary<Key, Value>.Index)

Replaces the given index with its successor.

func formIndex(inout Dictionary<Key, Value>.Index, offsetBy: Int)

Offsets the given index by the specified distance.

func index(Dictionary<Key, Value>.Index, offsetBy: Int, limitedBy: Dictionary<Key, Value>.Index) -> Dictionary<Key, Value>.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 Dictionary<Key, Value>.Index, offsetBy: Int, limitedBy: Dictionary<Key, Value>.Index) -> Bool

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

var indices: DefaultIndices<Dictionary<Key, Value>>

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