我有以下代码块,并希望使用 Kotlin 减少它。我怎样才能做到这一点?
if (name == nameArray[0]) {
// The statement
} else if(name == nameArray[1]) {
// The statement
} else if(name == nameArray[2]) {
// The statement
} else if(name == nameArray[3]) {
// The statement
} else {
// The statement
}
Run Code Online (Sandbox Code Playgroud)
如果数组很小并且您想将操作映射到每个索引:
您可以indexOfFirst用来确定适合您状况的最小指数。然后,您可以使用when语句来决定要做什么。
when(nameArray.indexOfFirst{ it == name }) {
0 -> // do something
1 -> // do something else
//...
else -> // do something different
}
Run Code Online (Sandbox Code Playgroud)
如果您可能想对多个索引做同样的事情,您可以使用逗号分隔值。如果索引是连续的,您可以使用范围:
when(nameArray.indexOfFirst{ it == name }) {
0 -> // do something
1, 2 -> // do the same thing for 1 and 2
in 3..6 -> // do the same thing for 3, 4, 5 and 6
//...
else -> // do something different
}
Run Code Online (Sandbox Code Playgroud)
为了使用这种语法,最好先进行索引检索(如图所示)。
如果数组很大并且您真的只想检查特定元素:
when(name) {
nameArray[0] -> // do something
nameArray[1] -> // do something
nameArray[2] -> // do something
nameArray[3] -> // do something
else -> // other action
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
408 次 |
| 最近记录: |