coerceIn

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

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

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.

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.

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.

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
}