kotlin: foreach/foreachIndexed函数
一,例子遍历map
代码:
//处理按钮点击事件
binding.button1.setOnClickListener {
// 遍历map
val map = mapOf("A" to 1, "B" to 2)
// 遍历键值对(Pair)
map.forEach { (key, value) ->
println("$key -> $value")
}
// 或直接使用 `it.key` 和 `it.value`
map.forEach { println("${it.key}: ${it.value}") }
}
运行结果:
二,例子:遍历list
代码:
//处理按钮点击事件
binding.button2.setOnClickListener {
// 创建列表集合
val list = listOf("Tom", "Jerry", "Jack")
// 使用 for in 循环遍历
for (name in list) {
println("for : $name")
}
// 使用 forEach 遍历
list.forEach {
println("forEach : $it")
}
// 遍历时获取索引位置
list.forEachIndexed { index, s ->
println("索引:$index : 元素: $s")
}
//带索引遍历
list.withIndex().forEach { (index, value) ->
println("索引:$index: 元素: $value")
}
}
运行结果:
三,例子:return 退出整个函数
代码:
函数:
//return 的行为
fun testForEach() {
listOf(1, 2, 3).forEach {
if (it == 2) return // 直接退出整个函数!
println(it)
}
println("End") // 不会执行
}
调用
//处理按钮点击事件
binding.button3.setOnClickListener {
testForEach()
}
运行结果:
四,例子:使用标签控制 return
代码:
函数:
//使用标签控制 return
fun testForEachLabel() {
listOf(1, 2, 3).forEach {
if (it == 2) return@forEach // 仅退出当前本次循环
println(it)
}
println("End") // 会执行
}
调用:
//处理按钮点击事件
binding.button4.setOnClickListener {
testForEachLabel()
}
运行结果: