```
operator prefix ... {
associativity
precedence
}
```

### Declarations

Returns a partial range up to, and including, its upper bound.

Use the prefix closed range operator (prefix `...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

You can use this type of partial range of a collection's indices to represent the range from the start of the collection up to, and including, the partial range's upper bound.

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

Use the prefix closed range operator (prefix `...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

You can use this type of partial range of a collection's indices to represent the range from the start of the collection up to, and including, the partial range's upper bound.

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`BinaryFloatingPoint`

, `Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`StringProtocol`

, `Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`FixedWidthInteger`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Strideable`

, `Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Strideable`

, `Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Strideable`

, `Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Strideable`

, `Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

`...`

) to create a partial
range of any type that conforms to the `Comparable`

protocol. This
example creates a `PartialRangeThrough<Double>`

instance that includes
any value less than or equal to `5.0`

.

```
let throughFive = ...5.0
throughFive.contains(4.0) // true
throughFive.contains(5.0) // true
throughFive.contains(6.0) // false
```

```
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// Prints "[10, 20, 30, 40]"
```

** maximum:** The upper bound for the range.

#### Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

#### Declared In

`Comparable`

Returns a partial range up to, and including, its upper bound.

Use the prefix closed range operator (prefix

`...`

) to create a partial range of any type that conforms to the`Comparable`

protocol. This example creates a`PartialRangeThrough<Double>`

instance that includes any value less than or equal to`5.0`

.You can use this type of partial range of a collection's indices to represent the range from the start of the collection up to, and including, the partial range's upper bound.

The upper bound for the range.`maximum`

:## Declaration

`prefix func ...(maximum: Self) -> PartialRangeThrough<Self>`

## Declared In

`Strideable`

,`Comparable`