📅  最后修改于: 2023-12-03 15:19:49.052000             🧑  作者: Mango
在 Kotlin 中,使用 return
关键字来退出循环的语法与其他循环语言并不相同,这也许会导致开发人员在编写代码时遇到一些问题。
当在 forEach
循环中使用 return
关键字时,只会退出当前的一次循环而不是整个循环。下面的代码示例演示了这个问题:
val list = listOf("apple", "banana", "orange", "pear", "grape")
fun processFruit() {
list.forEach {
if (it == "orange") {
return // 仅退出了当前的一次循环
}
println("Processing $it")
}
}
processFruit()
输出结果:
Processing apple
Processing banana
Processing pear
Processing grape
可以看到循环没有被完全退出,"orange" 这个元素后的元素仍然被处理了。
使用 forEach
循环时,在需要退出循环的地方使用 return@forEach
而不是 return
关键字,这样才能退出整个循环。以下是修改后的示例代码:
val list = listOf("apple", "banana", "orange", "pear", "grape")
fun processFruit() {
list.forEach {
if (it == "orange") {
return@forEach // 退出整个循环
}
println("Processing $it")
}
}
processFruit()
输出结果:
Processing apple
Processing banana
在 Kotlin 中,使用 return
关键字仅会退出当前的一次循环而不是整个循环,必须使用 return@forEach
退出整个循环。
注:以上示例代码为 Kotlin 1.5.30 版本,其他版本的表现可能不同。