Kotlin,如何检查索引是否在范围内

时间:2020-02-24 14:24:34

标签: kotlin

在这种情况下,地图会传入类似数据

Map<Pair<Int, Int>), String>

Pair<Int, Int>) // zero based star index, inclusive end index
to
displayString

在执行此过程时,需要为当前位置选择适当的displayString,例如

var index = 0
for (data in dataList) {
   /*
   if the current index is within one of the pair<int, int> 
   then use the mapped displayString
   */
   index++
}

在Kotlin做什么是最好的方式?

1 个答案:

答案 0 :(得分:1)

不确定这是否是您的意思,但可能是这样的:

var index = 0
for (data in dataList) {
   /*
   if the current index is within one of the pair<int, int> 
   then use the mapped displayString
   */
   val currentPair = data.key
   if ((currentPair.first .. currentPair.second).contains(index)) {
       // do something
   }

   index++
}

尽管如果您想让一个吸气剂从包含int的地图中获取第一对,也许您想要这样的事情:

fun getByIndex(dataList: Map<Pair<Int,Int>, String>, index: Int): String? {
   return dataList.firstOrNull { 
       (it.key.first .. it.key.second).contains(index) 
   } 
}

使用until而不是..来获得互斥的结束索引