Package kotlin.ranges

Ranges , Progressions and related top-level and extension functions.

Types

Common
JVM
JS
Native
1.0

CharProgression

A progression of values of type Char .

open class CharProgression : Iterable < Char >
Common
JVM
JS
Native
1.0

CharRange

A range of values of type Char .

class CharRange :
CharProgression ,
ClosedRange < Char > ,
OpenEndRange < Char >
Common
JVM
JS
Native
1.1

ClosedFloatingPointRange

Represents a range of floating point numbers. Extends ClosedRange interface providing custom operation lessThanOrEquals for comparing values of range domain type.

interface ClosedFloatingPointRange < T : Comparable < T > > :
ClosedRange < T >
Common
JVM
JS
Native
1.0

ClosedRange

Represents a range of values (for example, numbers or characters) where both the lower and upper bounds are included in the range. See the Kotlin language documentation for more information.

interface ClosedRange < T : Comparable < T > >
Common
JVM
JS
Native
1.0

IntProgression

A progression of values of type Int .

open class IntProgression : Iterable < Int >
Common
JVM
JS
Native
1.0

IntRange

A range of values of type Int .

class IntRange :
IntProgression ,
ClosedRange < Int > ,
OpenEndRange < Int >
Common
JVM
JS
Native
1.0

LongProgression

A progression of values of type Long .

open class LongProgression : Iterable < Long >
Common
JVM
JS
Native
1.0

LongRange

A range of values of type Long .

class LongRange :
LongProgression ,
ClosedRange < Long > ,
OpenEndRange < Long >
Common
JVM
JS
Native
1.9

OpenEndRange

Represents a range of values (for example, numbers or characters) where the upper bound is not included in the range. See the Kotlin language documentation for more information.

interface OpenEndRange < T : Comparable < T > >
Common
JVM
JS
Native
1.5

UIntProgression

A progression of values of type UInt .

open class UIntProgression : Iterable < UInt >
Common
JVM
JS
Native
1.5

UIntRange

A range of values of type UInt .

Common
JVM
JS
Native
1.5

ULongProgression

A progression of values of type ULong .

open class ULongProgression : Iterable < ULong >
Common
JVM
JS
Native
1.5

ULongRange

A range of values of type ULong .

Functions

Common
JVM
JS
Native
1.0

coerceAtLeast

Ensures that this value is not less than the specified minimumValue .

fun < T : Comparable < T > > T . coerceAtLeast ( minimumValue : T ) : T
fun Byte . coerceAtLeast ( minimumValue : Byte ) : Byte
fun Short . coerceAtLeast ( minimumValue : Short ) : Short
fun Int . coerceAtLeast ( minimumValue : Int ) : Int
fun Long . coerceAtLeast ( minimumValue : Long ) : Long
fun Float . coerceAtLeast ( minimumValue : Float ) : Float
fun Double . coerceAtLeast ( minimumValue : Double ) : Double
fun UInt . coerceAtLeast ( minimumValue : UInt ) : UInt
fun ULong . coerceAtLeast ( minimumValue : ULong ) : ULong
fun UByte . coerceAtLeast ( minimumValue : UByte ) : UByte
fun UShort . coerceAtLeast ( minimumValue : UShort ) : UShort
Common
JVM
JS
Native
1.0

coerceAtMost

Ensures that this value is not greater than the specified maximumValue .

fun < T : Comparable < T > > T . coerceAtMost ( maximumValue : T ) : T
fun Byte . coerceAtMost ( maximumValue : Byte ) : Byte
fun Short . coerceAtMost ( maximumValue : Short ) : Short
fun Int . coerceAtMost ( maximumValue : Int ) : Int
fun Long . coerceAtMost ( maximumValue : Long ) : Long
fun Float . coerceAtMost ( maximumValue : Float ) : Float
fun Double . coerceAtMost ( maximumValue : Double ) : Double
fun UInt . coerceAtMost ( maximumValue : UInt ) : UInt
fun ULong . coerceAtMost ( maximumValue : ULong ) : ULong
fun UByte . coerceAtMost ( maximumValue : UByte ) : UByte
fun UShort . coerceAtMost ( maximumValue : UShort ) : UShort
Common
JVM
JS
Native
1.0

coerceIn

Ensures that this value lies in the specified range minimumValue .. maximumValue .

fun < T : Comparable < T > > T . coerceIn (
minimumValue : T ? ,
maximumValue : T ?
) : T
fun Byte . coerceIn (
minimumValue : Byte ,
maximumValue : Byte
) : Byte
fun Short . coerceIn (
minimumValue : Short ,
maximumValue : Short
) : Short
fun Int . coerceIn ( minimumValue : Int , maximumValue : Int ) : Int
fun Long . coerceIn (
minimumValue : Long ,
maximumValue : Long
) : Long
fun Float . coerceIn (
minimumValue : Float ,
maximumValue : Float
) : Float
fun Double . coerceIn (
minimumValue : Double ,
maximumValue : Double
) : Double
fun UInt . coerceIn (
minimumValue : UInt ,
maximumValue : UInt
) : UInt
fun ULong . coerceIn (
minimumValue : ULong ,
maximumValue : ULong
) : ULong
fun UByte . coerceIn (
minimumValue : UByte ,
maximumValue : UByte
) : UByte
fun UShort . coerceIn (
minimumValue : UShort ,
maximumValue : UShort
) : UShort

Ensures that this value lies in the specified range .

fun < T : Comparable < T > > T . coerceIn (
range : ClosedFloatingPointRange < T >
) : T
fun < T : Comparable < T > > T . coerceIn ( range : ClosedRange < T > ) : T
fun Int . coerceIn ( range : ClosedRange < Int > ) : Int
fun Long . coerceIn ( range : ClosedRange < Long > ) : Long
fun UInt . coerceIn ( range : ClosedRange < UInt > ) : UInt
fun ULong . coerceIn ( range : ClosedRange < ULong > ) : ULong
Common
JVM
JS
Native
1.0

contains

Returns true if this range contains the specified element .

operator fun IntRange . contains ( element : Int ? ) : Boolean
operator fun LongRange . contains ( element : Long ? ) : Boolean
operator fun CharRange . contains ( element : Char ? ) : Boolean
operator fun UIntRange . contains ( element : UInt ? ) : Boolean
operator fun ULongRange . contains ( element : ULong ? ) : Boolean

Checks if the specified value belongs to this range.

operator fun ClosedRange < Int > . contains ( value : Byte ) : Boolean
operator fun ClosedRange < Long > . contains ( value : Byte ) : Boolean
operator fun ClosedRange < Short > . contains (
value : Byte
) : Boolean
operator fun ClosedRange < Double > . contains (
value : Byte
) : Boolean
operator fun ClosedRange < Float > . contains (
value : Byte
) : Boolean
operator fun OpenEndRange < Int > . contains ( value : Byte ) : Boolean
operator fun OpenEndRange < Long > . contains (
value : Byte
) : Boolean
operator fun OpenEndRange < Short > . contains (
value : Byte
) : Boolean
operator fun IntRange . contains ( value : Byte ) : Boolean
operator fun LongRange . contains ( value : Byte ) : Boolean
operator fun ClosedRange < Int > . contains (
value : Double
) : Boolean
operator fun ClosedRange < Long > . contains (
value : Double
) : Boolean
operator fun ClosedRange < Byte > . contains (
value : Double
) : Boolean
operator fun ClosedRange < Short > . contains (
value : Double
) : Boolean
operator fun ClosedRange < Float > . contains (
value : Double
) : Boolean
operator fun ClosedRange < Int > . contains ( value : Float ) : Boolean
operator fun ClosedRange < Long > . contains (
value : Float
) : Boolean
operator fun ClosedRange < Byte > . contains (
value : Float
) : Boolean
operator fun ClosedRange < Short > . contains (
value : Float
) : Boolean
operator fun ClosedRange < Double > . contains (
value : Float
) : Boolean
operator fun OpenEndRange < Double > . contains (
value : Float
) : Boolean
operator fun ClosedRange < Long > . contains ( value : Int ) : Boolean
operator fun ClosedRange < Byte > . contains ( value : Int ) : Boolean
operator fun ClosedRange < Short > . contains ( value : Int ) : Boolean
operator fun ClosedRange < Double > . contains (
value : Int
) : Boolean
operator fun ClosedRange < Float > . contains ( value : Int ) : Boolean
operator fun OpenEndRange < Long > . contains ( value : Int ) : Boolean
operator fun OpenEndRange < Byte > . contains ( value : Int ) : Boolean
operator fun OpenEndRange < Short > . contains (
value : Int
) : Boolean
operator fun LongRange . contains ( value : Int ) : Boolean
operator fun ClosedRange < Int > . contains ( value : Long ) : Boolean
operator fun ClosedRange < Byte > . contains ( value : Long ) : Boolean
operator fun ClosedRange < Short > . contains (
value : Long
) : Boolean
operator fun ClosedRange < Double > . contains (
value : Long
) : Boolean
operator fun ClosedRange < Float > . contains (
value : Long
) : Boolean
operator fun OpenEndRange < Int > . contains ( value : Long ) : Boolean
operator fun OpenEndRange < Byte > . contains (
value : Long
) : Boolean
operator fun OpenEndRange < Short > . contains (
value : Long
) : Boolean
operator fun IntRange . contains ( value : Long ) : Boolean
operator fun ClosedRange < Int > . contains ( value : Short ) : Boolean
operator fun ClosedRange < Long > . contains (
value : Short
) : Boolean
operator fun ClosedRange < Byte > . contains (
value : Short
) : Boolean
operator fun ClosedRange < Double > . contains (
value : Short
) : Boolean
operator fun ClosedRange < Float > . contains (
value : Short
) : Boolean
operator fun OpenEndRange < Int > . contains (
value : Short
) : Boolean
operator fun OpenEndRange < Long > . contains (
value : Short
) : Boolean
operator fun OpenEndRange < Byte > . contains (
value : Short
) : Boolean
operator fun IntRange . contains ( value : Short ) : Boolean
operator fun LongRange . contains ( value : Short ) : Boolean
operator fun UIntRange . contains ( value : UByte ) : Boolean
operator fun ULongRange . contains ( value : UByte ) : Boolean
operator fun ULongRange . contains ( value : UInt ) : Boolean
operator fun UIntRange . contains ( value : ULong ) : Boolean
operator fun UIntRange . contains ( value : UShort ) : Boolean
operator fun ULongRange . contains ( value : UShort ) : Boolean

Returns true if this iterable range contains the specified element .

operator fun < T : Any , R > R . contains (
element : T ?
) : Boolean where R : ClosedRange < T > , R : Iterable < T >
Common
JVM
JS
Native
1.0

downTo

Returns a progression from this value down to the specified to value with the step -1.

infix fun Int . downTo ( to : Byte ) : IntProgression
infix fun Long . downTo ( to : Byte ) : LongProgression
infix fun Byte . downTo ( to : Byte ) : IntProgression
infix fun Short . downTo ( to : Byte ) : IntProgression
infix fun Char . downTo ( to : Char ) : CharProgression
infix fun Int . downTo ( to : Int ) : IntProgression
infix fun Long . downTo ( to : Int ) : LongProgression
infix fun Byte . downTo ( to : Int ) : IntProgression
infix fun Short . downTo ( to : Int ) : IntProgression
infix fun Int . downTo ( to : Long ) : LongProgression
infix fun Long . downTo ( to : Long ) : LongProgression
infix fun Byte . downTo ( to : Long ) : LongProgression
infix fun Short . downTo ( to : Long ) : LongProgression
infix fun Int . downTo ( to : Short ) : IntProgression
infix fun Long . downTo ( to : Short ) : LongProgression
infix fun Byte . downTo ( to : Short ) : IntProgression
infix fun Short . downTo ( to : Short ) : IntProgression
infix fun UByte . downTo ( to : UByte ) : UIntProgression
infix fun UInt . downTo ( to : UInt ) : UIntProgression
infix fun ULong . downTo ( to : ULong ) : ULongProgression
infix fun UShort . downTo ( to : UShort ) : UIntProgression
Common
JVM
JS
Native
1.7

first

Returns the first element.

fun IntProgression . first ( ) : Int
fun LongProgression . first ( ) : Long
fun CharProgression . first ( ) : Char
fun UIntProgression . first ( ) : UInt
fun ULongProgression . first ( ) : ULong
Common
JVM
JS
Native
1.7

firstOrNull

Returns the first element, or null if the progression is empty.

fun IntProgression . firstOrNull ( ) : Int ?
fun LongProgression . firstOrNull ( ) : Long ?
fun CharProgression . firstOrNull ( ) : Char ?
fun UIntProgression . firstOrNull ( ) : UInt ?
fun ULongProgression . firstOrNull ( ) : ULong ?
Common
JVM
JS
Native
1.7

last

Returns the last element.

fun IntProgression . last ( ) : Int
fun LongProgression . last ( ) : Long
fun CharProgression . last ( ) : Char
fun UIntProgression . last ( ) : UInt
Common
JVM
JS
Native
1.7

lastOrNull

Returns the last element, or null if the progression is empty.

fun IntProgression . lastOrNull ( ) : Int ?
fun LongProgression . lastOrNull ( ) : Long ?
fun CharProgression . lastOrNull ( ) : Char ?
fun UIntProgression . lastOrNull ( ) : UInt ?
fun ULongProgression . lastOrNull ( ) : ULong ?
Common
JVM
JS
Native
1.3

random

Returns a random element from this range.

fun IntRange . random ( ) : Int
fun LongRange . random ( ) : Long
fun CharRange . random ( ) : Char
fun UIntRange . random ( ) : UInt
fun ULongRange . random ( ) : ULong

Returns a random element from this range using the specified source of randomness.

fun IntRange . random ( random : Random ) : Int
fun LongRange . random ( random : Random ) : Long
fun CharRange . random ( random : Random ) : Char
fun UIntRange . random ( random : Random ) : UInt
fun ULongRange . random ( random : Random ) : ULong
Common
JVM
JS
Native
1.4

randomOrNull

Returns a random element from this range, or null if this range is empty.

fun IntRange . randomOrNull ( ) : Int ?
fun LongRange . randomOrNull ( ) : Long ?
fun CharRange . randomOrNull ( ) : Char ?
fun UIntRange . randomOrNull ( ) : UInt ?
fun ULongRange . randomOrNull ( ) : ULong ?

Returns a random element from this range using the specified source of randomness, or null if this range is empty.

fun IntRange . randomOrNull ( random : Random ) : Int ?
fun LongRange . randomOrNull ( random : Random ) : Long ?
fun CharRange . randomOrNull ( random : Random ) : Char ?
fun UIntRange . randomOrNull ( random : Random ) : UInt ?
fun ULongRange . randomOrNull ( random : Random ) : ULong ?
Common
JVM
JS
Native
1.0

rangeTo

Creates a range from this Comparable value to the specified that value.

operator fun < T : Comparable < T > > T . rangeTo (
that : T
) : ClosedRange < T >

Creates a range from this Double value to the specified that value.

operator fun Double . rangeTo (
that : Double
) : ClosedFloatingPointRange < Double >

Creates a range from this Float value to the specified that value.

operator fun Float . rangeTo (
that : Float
) : ClosedFloatingPointRange < Float >
Common
JVM
JS
Native
1.9

rangeUntil

Creates an open-ended range from this Comparable value to the specified that value.

operator fun < T : Comparable < T > > T . rangeUntil (
that : T
) : OpenEndRange < T >

Creates an open-ended range from this Double value to the specified that value.

operator fun Double . rangeUntil (
that : Double
) : OpenEndRange < Double >

Creates an open-ended range from this Float value to the specified that value.

operator fun Float . rangeUntil (
that : Float
) : OpenEndRange < Float >
Common
JVM
JS
Native
1.0

reversed

Returns a progression that goes over the same range in the opposite direction with the same step.

Common
JVM
JS
Native
1.0

step

Returns a progression that goes over the same range with the given step.

infix fun IntProgression . step ( step : Int ) : IntProgression
infix fun LongProgression . step ( step : Long ) : LongProgression
infix fun CharProgression . step ( step : Int ) : CharProgression
infix fun UIntProgression . step ( step : Int ) : UIntProgression
infix fun ULongProgression . step ( step : Long ) : ULongProgression
Common
JVM
JS
Native
1.0

until

Returns a range from this value up to but excluding the specified to value.

infix fun Int . until ( to : Byte ) : IntRange
infix fun Long . until ( to : Byte ) : LongRange
infix fun Byte . until ( to : Byte ) : IntRange
infix fun Short . until ( to : Byte ) : IntRange
infix fun Char . until ( to : Char ) : CharRange
infix fun Int . until ( to : Int ) : IntRange
infix fun Long . until ( to : Int ) : LongRange
infix fun Byte . until ( to : Int ) : IntRange
infix fun Short . until ( to : Int ) : IntRange
infix fun Int . until ( to : Long ) : LongRange
infix fun Long . until ( to : Long ) : LongRange
infix fun Byte . until ( to : Long ) : LongRange
infix fun Short . until ( to : Long ) : LongRange
infix fun Int . until ( to : Short ) : IntRange
infix fun Long . until ( to : Short ) : LongRange
infix fun Byte . until ( to : Short ) : IntRange
infix fun Short . until ( to : Short ) : IntRange
infix fun UByte . until ( to : UByte ) : UIntRange
infix fun UInt . until ( to : UInt ) : UIntRange
infix fun ULong . until ( to : ULong ) : ULongRange
infix fun UShort . until ( to : UShort ) : UIntRange