coerce In
Начиная с Kotlin: 1.0
fun <T : Comparable<T>> T.coerceIn(minimumValue: T?, maximumValue: T?): T
Гарантирует, что это значение находится в указанном диапазоне minimumValue..maximumValue.
Возвращаемое значение
это значение, если оно находится в диапазоне, или minimumValue, если это значение меньше minimumValue, или maximumValue, если это значение больше maximumValue.
Примеры
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
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
Гарантирует, что это значение находится в указанном диапазоне minimumValue..maximumValue.
Возвращаемое значение
это значение, если оно находится в диапазоне, или minimumValue, если это значение меньше minimumValue, или maximumValue, если это значение больше maximumValue.
Примеры
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 <T : Comparable<T>> T.coerceIn(range: ClosedFloatingPointRange<T>): T
Гарантирует, что это значение находится в указанном диапазоне.
Возвращаемое значение
это значение, если оно находится в диапазоне, или range.start, если это значение меньше range.start, или range.endInclusive, если это значение больше range.endInclusive.
Примеры
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
Гарантирует, что это значение находится в указанном диапазоне.
Возвращаемое значение
это значение, если оно находится в диапазоне, или range.start, если это значение меньше range.start, или range.endInclusive, если это значение больше range.endInclusive.
Примеры
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 Int.coerceIn(range: ClosedRange<Int>): Int
fun Long.coerceIn(range: ClosedRange<Long>): Long
Гарантирует, что это значение находится в указанном диапазоне.
Возвращаемое значение
это значение, если оно находится в диапазоне, или range.start, если это значение меньше range.start, или range.endInclusive, если это значение больше range.endInclusive.
Примеры
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
fun ULong.coerceIn(minimumValue: ULong, maximumValue: ULong): ULong
fun UByte.coerceIn(minimumValue: UByte, maximumValue: UByte): UByte
fun UShort.coerceIn(minimumValue: UShort, maximumValue: UShort): UShort
Гарантирует, что это значение находится в указанном диапазоне minimumValue..maximumValue.
Возвращаемое значение
это значение, если оно находится в диапазоне, или minimumValue, если это значение меньше minimumValue, или maximumValue, если это значение больше maximumValue.
Примеры
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
}
fun UInt.coerceIn(range: ClosedRange<UInt>): UInt
fun ULong.coerceIn(range: ClosedRange<ULong>): ULong
Гарантирует, что это значение находится в указанном диапазоне.
Возвращаемое значение
это значение, если оно находится в диапазоне, или range.start, если это значение меньше range.start, или range.endInclusive, если это значение больше range.endInclusive.
Примеры
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
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.ranges/coerce-in.html