Диапазон в Kotlin
Запись 1..5 создает диапазон целых. Если
левая и правая граница имеют ваш тип, диапазон
задают функцией rangeTo с operator
между двумя операндами через ..:
class Hour(val value: Int) {
operator fun rangeTo(other: Hour): IntRange {
return value..other.value
}
}
Между двумя Hour оператор ..
вернет IntRange по полям value.
Его можно обойти в цикле или проверить вхождение
числа:
fun main() {
val start = Hour(9)
val end = Hour(12)
val block = start..end
println(10 in block)
println(block.last)
}
Внутри rangeTo тип диапазона выбирают
в объявлении. Здесь это стандартный
IntRange по часам рабочего окна.
Сделайте класс Minute с полем value.
Между 8 и 10 постройте диапазон
через .. и выведите его последний элемент.
Для границ 14 и 16 получите
диапазон и выведите, входит ли 15
в этот интервал.