Instance Method

# distance(from:to:)

Returns the distance between two indices.

## Declaration

Available when Bound conforms to Strideable and Bound.Stride conforms to SignedInteger.

## Parameters

`start`

A valid index of the collection.

`end`

Another valid index of the collection. If `end` is equal to `start`, the result is zero.

## Return Value

The distance between `start` and `end`. The result can be negative only if the collection conforms to the `BidirectionalCollection` protocol.

## Discussion

Unless the collection conforms to the `BidirectionalCollection` protocol, `start` must be less than or equal to `end`.

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

## Relationships

### Manipulating Indices

`var startIndex: Bound`

The position of the first element in a nonempty collection.

`var endIndex: Bound`

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

`var indices: Range<Bound>`

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

`var indices: Range<Bound>`

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

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

Returns the position immediately after the given index.

`func formIndex(after: inout Bound)`

Replaces the given index with its successor.

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

Returns the position immediately before the given index.

`func formIndex(before: inout Bound)`

Replaces the given index with its predecessor.

`func index(Bound, offsetBy: Int, limitedBy: Bound) -> Bound?`

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

`func formIndex(inout Bound, offsetBy: Int)`

Offsets the given index by the specified distance.

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

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

`func formIndex(inout Bound, offsetBy: Int, limitedBy: Bound) -> Bool`

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

`func hash(into: inout Hasher)`

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