Gamas en Kotlin debajo de API 21

Quiero almacenar pares key-valor como < 4.1, 29..35 > que puedo hacer con un 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) } 

¿Cómo puedo hacer esto debajo del nivel API 21?

Use IntRange en IntRange lugar:

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

Tenga en count que 29..35 es un intervalo cerrado :

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

Para crear un range que no incluya su elemento final, use 29 until 35 :

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

Para más información: Rangos

Range es una class en el SDK de Android, esto está ligado a la API 21. Sin embargo, podría usar IntRange proporcionado por la biblioteca estándar de Kotlin.

Aquí puede encontrar ejemplos de uso de los ranges de Kotlin.

Así es como se ve su uso básico:

 val range = 1..10 // creation println(range.first) // 1 println(range.last) // 10 println(5 in range) // true 
  • Notificación Acción no disparando PendingIntent
  • Kara Kotlin para web, integraciones futuras
  • Error de informe de IntelliJ corriendo por un file no encontrado en un module que creé
  • ¿Los types de datos de Kotlin están basados ​​en types de datos Java primitivos o no primitivos?
  • El código de Vertx Sync se ejecuta varias veces
  • Java 2 minutos de retraso a veces cuando se conecta el zócalo?
  • PubNub suscribe Android Kotlin
  • Proyecto Android kotlin construido atascado en la aplicación: tarea kaptDebugKotlin
  • ¿Por qué la variable no se puede inicializar correctamente en la function en línea como en Java?
  • Mutar cadena de una extensión
  • En Kotlin cuando uso Kovenant Promise.of (value) a veces goteo excepciones