BidirectionalIndexType

An index that can step backwards via application of its predecessor() method.

Inheritance Equatable, ForwardIndexType, _Incrementable View Protocol Hierarchy →
Associated Types

A type that can represent the number of steps between pairs of Self values where one value is reachable from the other.

Reachability is defined by the ability to produce one value from the other via zero or more applications of successor.

1 inherited item hidden. (Show all)

Import
  • import Swift

Instance Methods

func ==(_:rhs:) Required

Returns 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 is true
  • x == y implies y == x
  • x == y and y == z implies x == z

Inequality is the inverse of equality, i.e. !(x == y) iff x != y.

Declaration

  • func ==(lhs: Self, rhs: Self) -> Bool

Declared In

Equatable
func advancedBy(_:)

Returns the result of advancing self by n positions.

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.

Requires: n >= 0 if only conforming to ForwardIndexType Complexity: - O(1) if conforming to RandomAccessIndexType - O(abs(n)) otherwise

Declaration

  • func advancedBy(n: Self.Distance) -> Self

Declared In

ForwardIndexType
func advancedBy(_:limit:)

Returns the result of advancing self by n positions, or until it equals limit.

Returns: - If n > 0, the result of applying successor to self n times but not past limit. - If n < 0, the result of applying predecessor to self -n times but not past limit. - Otherwise, self.

Requires: n >= 0 if only conforming to ForwardIndexType.

Complexity: - O(1) if conforming to RandomAccessIndexType - O(abs(n)) otherwise

Declaration

  • func advancedBy(n: Self.Distance, limit: Self) -> Self

Declared In

ForwardIndexType
func distanceTo(_:)

Measure the distance between self and end.

Requires: - start and end are part of the same sequence when conforming to RandomAccessSequenceType. - end is reachable from self by incrementation otherwise.

Complexity: - O(1) if conforming to RandomAccessIndexType - O(n) otherwise, where n is the function's result.

Declaration

  • func distanceTo(end: Self) -> Self.Distance

Declared In

ForwardIndexType
func predecessor() Required

Returns 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
func successor() Required

Returns 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

5 inherited items hidden. (Show all)

Default Implementations

func advancedBy(_:)

Declaration

  • func advancedBy(n: Self.Distance) -> Self

Declared In

BidirectionalIndexType, ForwardIndexType
func advancedBy(_:limit:)

Declaration

  • func advancedBy(n: Self.Distance, limit: Self) -> Self

Declared In

BidirectionalIndexType, ForwardIndexType
func distanceTo(_:)

Measure the distance between self and end.

Requires: - start and end are part of the same sequence when conforming to RandomAccessSequenceType. - end is reachable from self by incrementation otherwise.

Complexity: - O(1) if conforming to RandomAccessIndexType - O(n) otherwise, where n is the function's result.

Declaration

  • func distanceTo(end: Self) -> Self.Distance

Declared In

ForwardIndexType

1 inherited item hidden. (Show all)

Where Self : ReverseIndexType

func predecessor()

Returns the previous consecutive value before self.

Requires: The previous value is representable.

Declaration

  • func predecessor() -> Self
func successor()

Returns the next consecutive value after self.

Requires: The next value is representable.

Declaration

  • func successor() -> Self