Диапазоны в Котлине ниже API 21

Я хочу хранить пары ключ-значение, такие как < 4.1, 29..35 > которые я могу сделать с помощью HashMap<Double, Range<Int>> :

 val womanMap: HashMap<Double, Range<Int>> = hashMapOf() @RequiresApi(Build.VERSION_CODES.LOLLIPOP) fun createMap() { //This both requires API 21 val range = Range(29,35) womanMap[4.6] = Range.create(29,35) } 

Как я могу сделать это ниже уровня API 21?

    IntRange этого используйте IntRange :

     val womanMap: HashMap<Double, IntRange> = hashMapOf() @RequiresApi(Build.VERSION_CODES.LOLLIPOP) fun createMap() { val range = 29..35 womanMap[4.6] = 29..35 } 

    Заметим, что 29..35 является замкнутым интервалом:

     for (a in 29..35) print("$a ") // >>> 29 30 31 32 33 34 35 

    Чтобы создать диапазон, который не включает его конечный элемент, используйте 29 until 35 :

     for (a in 29 until 35) print("$a ") // >>> 29 30 31 32 33 34 

    Для получения дополнительной информации: Диапазоны

    Range – это класс в Android SDK, это связано с API 21. IntRange вы можете использовать IntRange предоставляемый стандартной библиотекой Kotlin.

    Здесь вы можете найти примеры использования для диапазонов Kotlin.

    Вот как выглядит их основное использование:

     val range = 1..10 // creation println(range.first) // 1 println(range.last) // 10 println(5 in range) // true 
    Intereting Posts
    Котлин: Почему? оператор генерирует нулевые проверки при компиляции для jvm? проект kotlin не может быть построен в gradle (не может найти ссылку) Возвращаемое значение условия if / else, но также запускает код Ошибка: выполнение выполнено для задачи ': app: javaPreCompileDebug'. > java.io.IOException: не удалось удалить annotationProcessors.json В библиотеке Injekt для Kotlin, как мне создать локальные области, например, для каждой активности Android? Библиотека «Столкновение с пространством» вылетает со смертельным исходом 11 (SIGEGV) при вставке и удалении Уведомление Действие не срабатывает PendingIntent Предоставляет ли Kotlin какие-либо реализации своих интерфейсов сбора данных? Ошибка компилятора функции Unfrapping Kotlin Как получить пакет kotlin путем отражения Реактивное весеннее имя 5-го уровня безопасности в Котлине Дооснащение 2 Длина содержимого RequestBody больше, чем размер файла Расшифровка значительно медленнее по сравнению с шифрованием на Android Kotlin lazy var throwing ClassCastException: kotlin.UNINITIALIZED_VALUE Можем ли мы получить доступ к PropertyMetaData любого свойства в котлин?