在这种情况下,地图会传入类似数据
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做什么是最好的方式?
答案 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
而不是..
来获得互斥的结束索引