protocol
RandomAccessIndexType
Inheritance |
BidirectionalIndexType, Comparable, Equatable, ForwardIndexType, Strideable, _BidirectionalIndexType, _Comparable, _ForwardIndexType, _Incrementable, _RandomAccessIndexType, _Strideable
View Protocol Hierarchy →
|
---|---|
Associated Types |
A type that can represent the number of steps between pairs of
Reachability is defined by the ability to produce one value from
the other via zero or more applications of
A type that can represent the number of steps between pairs of
Reachability is defined by the ability to produce one value from
the other via zero or more applications of
A type that can represent the distance between two values of 3 inherited items hidden. (Show all) |
Import |
|
Instance Methods
A strict total order
over instances of Self
Declaration
func
<
(
lhs
:
Self
,
rhs
:
Self
) -
>
Bool
Declared In
_Comparable
Return true if lhs
is equal to rhs
.
Equality implies substitutability. When x == y
, x
and
y
are interchangeable in any code that only depends on their
values.
Class instance identity as distinguished by triple-equals ===
is notably not part of an instance's value. Exposing other
non-value aspects of Equatable
types is discouraged, and any
that are exposed should be explicitly pointed out in
documentation.
Equality is an equivalence relation
x == x
istrue
x == y
impliesy == x
x == y
andy == z
impliesx == z
Inequality is the inverse of equality, i.e. !(x == y)
iff
x != y
Declaration
func
==(
lhs
:
Self
,
rhs
:
Self
) -
>
Bool
Declared In
Equatable
Return self
offset by n
steps.
Returns: If n > 0
, the result of applying successor
to
self
n
times. If n < 0
, the result of applying
predecessor
to self
-n
times. Otherwise, self
.
Complexity: O(1)
Axioms:
x
.
advancedBy
(
0
) ==
x
x
.
advancedBy
(
1
) ==
x
.
successor
()
x
.
advancedBy
(-
1
) ==
x
.
predecessor
()
x
.
distanceTo
(
x
.
advancedBy
(
m
)) ==
m
Declaration
func
advancedBy
(
n
:
Self
.
Distance
) -
>
Self
Declared In
_RandomAccessIndexType
, _Strideable
Return the minimum number of applications of successor
or
predecessor
required to reach other
from self
.
Complexity: O(1).
Axioms:
x
.
distanceTo
(
x
.
successor
())) ==
1
x
.
distanceTo
(
x
.
predecessor
())) == -
1
x
.
advancedBy
(
x
.
distanceTo
(
y
)) ==
y
Declaration
func
distanceTo
(
other
:
Self
) -
>
Self
.
Distance
Declared In
_RandomAccessIndexType
, _Strideable
Return the previous consecutive value in a discrete sequence.
If self
has a well-defined successor,
self.successor().predecessor() == self
. If self
has a
well-defined predecessor, self.predecessor().successor() ==
self
.
Requires: self
has a well-defined predecessor.
Declaration
func
predecessor
() -
>
Self
Declared In
_BidirectionalIndexType
Return the next consecutive value in a discrete sequence of
Self
values
Requires: self
has a well-defined successor.
Declaration
func
successor
() -
>
Self
Declared In
_Incrementable
9 inherited items hidden. (Show all)
An index that can be offset by an arbitrary number of positions, and can measure the distance to any reachable value, in O(1).