rangeTo

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

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

This value needs to be smaller than or equal to that value, otherwise the returned range will be empty.

Samples

import samples.*
import java.sql.Date
import kotlin.test.assertFalse
import kotlin.test.assertTrue
fun main() { 
   //sampleStart 
   val start = Date.valueOf("2017-01-01")
val end = Date.valueOf("2017-12-31")
val range = start..end
assertPrints(range, "2017-01-01..2017-12-31")

assertTrue(Date.valueOf("2017-05-27") in range)
assertFalse(Date.valueOf("2018-01-01") in range)
assertTrue(Date.valueOf("2018-01-01") !in range) 
   //sampleEnd
}

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

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

Numbers are compared with the ends of this range according to IEEE-754.

Since Kotlin

1.1

Samples

import samples.*
import java.sql.Date
import kotlin.test.assertFalse
import kotlin.test.assertTrue
fun main() { 
   //sampleStart 
   val range = 1.0..100.0
assertPrints(range, "1.0..100.0")

assertTrue(3.14 in range)
assertFalse(100.1 in range) 
   //sampleEnd
}

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

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

Numbers are compared with the ends of this range according to IEEE-754.

Since Kotlin

1.1

Samples

import samples.*
import java.sql.Date
import kotlin.test.assertFalse
import kotlin.test.assertTrue
fun main() { 
   //sampleStart 
   val range = 1f..100f
assertPrints(range, "1.0..100.0")

assertTrue(3.14f in range)
assertFalse(100.1f in range) 
   //sampleEnd
}