Spec-Zone.ru › Kotlin 2

coerceIn

kotlin-stdlib/kotlin.ranges/coerceIn

Начиная с 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API