Kotlin的范围低于API 21

时间:2017-07-04 12:18:10

标签: android kotlin android-api-levels

我想存储< 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下执行此操作?

2 个答案:

答案 0 :(得分:5)

Range是Android SDK中的一个类,它与API 21相关联。但您可以使用Kotlin标准库提供的IntRange

您可以找到Kotlin范围here的使用示例。

以下是他们的基本用法:

val range = 1..10    // creation
println(range.first) // 1
println(range.last)  // 10
println(5 in range)  // true

答案 1 :(得分:4)

改为使用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

有关详细信息:Ranges