Instance Method

formIndex(_:offsetBy:limitedBy:)

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

Declaration

func formIndex(_ i: inout Index, offsetBy distance: Int, limitedBy limit: Index) -> Bool

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.

limit

A valid index of the collection to use as a limit. If distance > 0, a limit that is less than i has no effect. Likewise, if distance < 0, a limit that is greater than i has no effect.

Return Value

true if i has been offset by exactly distance steps without going beyond limit; otherwise, false. When the return value is false, the value of i is equal to limit.

Discussion

The value passed as distance must not offset i beyond the bounds of the collection, unless the index passed as limit prevents offsetting beyond those bounds.

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: ClosedRange<Bound>.Index

The position of the first element in the range.

var endIndex: ClosedRange<Bound>.Index

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

func index(after: ClosedRange<Bound>.Index) -> ClosedRange<Bound>.Index

Returns the position immediately after the given index.

func formIndex(after: inout Index)

Replaces the given index with its successor.

func index(before: ClosedRange<Bound>.Index) -> ClosedRange<Bound>.Index

Returns the position immediately before the given index.

func formIndex(before: inout Index)

Replaces the given index with its predecessor.

func index(ClosedRange<Bound>.Index, offsetBy: Int) -> ClosedRange<Bound>.Index

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

func formIndex(inout Index, offsetBy: Int)

Offsets the given index by the specified distance.

func index(Index, offsetBy: Int, limitedBy: Index) -> 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: ClosedRange<Bound>.Index, to: ClosedRange<Bound>.Index) -> Int

Returns the distance between two indices.

func hash(into: inout Hasher)

Hashes the essential components of this value by feeding them into the given hasher.