android - Foreach 没有得到正确的值
问题描述
这里的问题 return@Foreach 没有被执行它总是在 if 语句上返回 false
fun check() {
var x: Int? = null
val numbers = 1..100
numbers.forEach {
x = it
if (it == 2) {
return@forEach
}
}
showingText("$x Hello World")
}
解决方案
实际上,it==2
条件是true
whenit
是2,然后执行语句return@forEach
。您可以通过简单的日志查看它:
fun check() {
var x: Int? = null
val numbers = 1..100
numbers.forEach {
println(it)
x = it
if (it == 2) {
println("FINISH")
return@forEach
}
}
println("$x Hello World")
}
因此,return
执行并停止该forEach
方法。然后范围序列移动到下一个项目(3、4 等),因此对其运行操作。
如果要在2
找到后停止操作,请使用简单循环:
fun check2() {
var x: Int? = null
val numbers = 1..100
for(it in numbers) {
println(it)
x = it
if (it == 2) {
println("FINISH")
break
}
}
println("$x Hello World")
}
推荐阅读
- sql - 在两列之间提取不常见的 ID
- c# - 使用 openTK 绘图,保存到文件,显示在屏幕上
- visual-studio-code - 如何将 VS-Code / Shortcuts 中的控制组设置为特定文件?
- javascript - 如果文本包含特定单词,则在 iframe 中隐藏 css
- ios - sms_alert_note.caf 的 iOS 系统声音 ID
- excel - Excel - SUMIF - 不返回正确的值
- python - Dask分布式worker任务分配
- azure - Azure 容器实例在拉取映像时因某些问题而失败
- python - 获取当前目录 - 'os' 和 'subprocess' 库被禁止
- mysql - 带有magento的Mysql导致mysql连接中断