coerceIn

fun <T : Comparable<T>> T.coerceIn(minimumValue: T?, maximumValue: T?): T(source)

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

Since Kotlin

1.0

Return

this value if it's in the range, or minimumValue if this value is less than minimumValue, or maximumValue if this value is greater than maximumValue.

Samples

import java.time.DayOfWeek
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   val workingDays = DayOfWeek.MONDAY..DayOfWeek.FRIDAY
println(DayOfWeek.WEDNESDAY.coerceIn(workingDays)) // WEDNESDAY
println(DayOfWeek.SATURDAY.coerceIn(workingDays)) // FRIDAY

println(DayOfWeek.FRIDAY.coerceIn(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY)) // SATURDAY 
   //sampleEnd
}

fun Byte.coerceIn(minimumValue: Byte, maximumValue: Byte): Byte(source)
fun Short.coerceIn(minimumValue: Short, maximumValue: Short): Short(source)
fun Int.coerceIn(minimumValue: Int, maximumValue: Int): Int(source)
fun Long.coerceIn(minimumValue: Long, maximumValue: Long): Long(source)
fun Float.coerceIn(minimumValue: Float, maximumValue: Float): Float(source)
fun Double.coerceIn(minimumValue: Double, maximumValue: Double): Double(source)

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

Since Kotlin

1.0

Return

this value if it's in the range, or minimumValue if this value is less than minimumValue, or maximumValue if this value is greater than maximumValue.

Samples

import java.time.DayOfWeek
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   println(10.coerceIn(1, 100)) // 10
println(10.coerceIn(1..100)) // 10
println(0.coerceIn(1, 100)) // 1
println(500.coerceIn(1, 100)) // 100
// 10.coerceIn(100, 0) // will fail with IllegalArgumentException 
   //sampleEnd
}

Ensures that this value lies in the specified range.

Since Kotlin

1.1

Return

this value if it's in the range, or range.start if this value is less than range.start, or range.endInclusive if this value is greater than range.endInclusive.

Samples

import java.time.DayOfWeek
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   println(10.1.coerceIn(1.0..10.0)) // 10.0
println(9.9.coerceIn(1.0..10.0)) // 9.9

// 9.9.coerceIn(1.0..Double.NaN) // will fail with IllegalArgumentException 
   //sampleEnd
}

fun <T : Comparable<T>> T.coerceIn(range: ClosedRange<T>): T(source)

Ensures that this value lies in the specified range.

Since Kotlin

1.0

Return

this value if it's in the range, or range.start if this value is less than range.start, or range.endInclusive if this value is greater than range.endInclusive.

Samples

import java.time.DayOfWeek
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   val workingDays = DayOfWeek.MONDAY..DayOfWeek.FRIDAY
println(DayOfWeek.WEDNESDAY.coerceIn(workingDays)) // WEDNESDAY
println(DayOfWeek.SATURDAY.coerceIn(workingDays)) // FRIDAY

println(DayOfWeek.FRIDAY.coerceIn(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY)) // SATURDAY 
   //sampleEnd
}

Ensures that this value lies in the specified range.

Since Kotlin

1.0

Return

this value if it's in the range, or range.start if this value is less than range.start, or range.endInclusive if this value is greater than range.endInclusive.

Samples

import java.time.DayOfWeek
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   println(10.coerceIn(1, 100)) // 10
println(10.coerceIn(1..100)) // 10
println(0.coerceIn(1, 100)) // 1
println(500.coerceIn(1, 100)) // 100
// 10.coerceIn(100, 0) // will fail with IllegalArgumentException 
   //sampleEnd
}

fun UInt.coerceIn(minimumValue: UInt, maximumValue: UInt): UInt(source)
fun ULong.coerceIn(minimumValue: ULong, maximumValue: ULong): ULong(source)
fun UByte.coerceIn(minimumValue: UByte, maximumValue: UByte): UByte(source)
fun UShort.coerceIn(minimumValue: UShort, maximumValue: UShort): UShort(source)

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

Since Kotlin

1.5

Return

this value if it's in the range, or minimumValue if this value is less than minimumValue, or maximumValue if this value is greater than maximumValue.

Samples

import java.time.DayOfWeek
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   println(10u.coerceIn(1u, 100u)) // 10
println(10u.coerceIn(1u..100u)) // 10
println(0u.coerceIn(1u, 100u)) // 1
println(500u.coerceIn(1u, 100u)) // 100
// 10u.coerceIn(100u, 0u) // will fail with IllegalArgumentException 
   //sampleEnd
}

Ensures that this value lies in the specified range.

Since Kotlin

1.5

Return

this value if it's in the range, or range.start if this value is less than range.start, or range.endInclusive if this value is greater than range.endInclusive.

Samples

import java.time.DayOfWeek
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   println(10u.coerceIn(1u, 100u)) // 10
println(10u.coerceIn(1u..100u)) // 10
println(0u.coerceIn(1u, 100u)) // 1
println(500u.coerceIn(1u, 100u)) // 100
// 10u.coerceIn(100u, 0u) // will fail with IllegalArgumentException 
   //sampleEnd
}