Generic Structure


A partial half-open interval up to, but not including, an upper bound.


@frozen struct PartialRangeUpTo<Bound> where Bound : Comparable


You create PartialRangeUpTo instances by using the prefix half-open range operator (prefix ..<).

let upToFive = ..<5.0

You can use a PartialRangeUpTo instance to quickly check if a value is contained in a particular range of values. For example:

upToFive.contains(3.14)       // true
upToFive.contains(6.28)       // false
upToFive.contains(5.0)        // false

You can use a PartialRangeUpTo instance of a collection’s indices to represent the range from the start of the collection up to, but not including, the partial range’s upper bound.

let numbers = [10, 20, 30, 40, 50, 60, 70]
// Prints "[10, 20, 30]"



init(from: Decoder)

Creates a new instance by decoding from the given decoder.

Instance Properties

Instance Methods

func contains(Bound) -> Bool

Returns a Boolean value indicating whether the given element is contained within the range expression.

func encode(to: Encoder)

Encodes this value into the given encoder.

func relative<C>(to: C) -> Range<Bound>

Returns the range of indices described by this range expression within the given collection.


Conforms To

See Also

Range Expressions

struct PartialRangeThrough

A partial interval up to, and including, an upper bound.

struct PartialRangeFrom

A partial interval extending upward from a lower bound.

protocol RangeExpression

A type that can be used to slice a collection.

enum UnboundedRange_

A range expression that represents the entire range of a collection.