Kotlin 中 forEach 的 return@forEach 的使用误区

embedded/2025/1/12 20:47:12/

forEach

对于从Java开发转到Kotlin的开发者来说,return@forEach可能具有迷惑性。假如没有仔细了解过这个语法的使用,真的就被它的表象迷惑了。
因为它看上去真的实在太像【跳出forEach循环】了!!!
然而,实际上并不是结束forEach,而是结束本次相当于Java的continue

别问我是怎么知道的!

kotlin">val numbers = listOf(1, 2, 3, 4, 5)//这个遍历会把所有的元素(1~5)都遍历一遍
numbers.forEach { number ->if (number == 3) {return@forEach  // 退出当前循环,继续下一个元素(相当于 continue)}println(number)  //  输出 1 2 4 5
}

如果你想遍历查找某个元素,可以像Java那样使用for-break方式

kotlin">val numbers = listOf(1, 2, 3, 4, 5)for (number in numbers) {if (number == 3) {break  // 跳出整个循环}println(number)  // 输出 1 2
}

使用 find 函数

find 用于查找集合中第一个符合条件的元素。如果找到了符合条件的元素,它会返回该元素,否则返回 null。

kotlin">val list = listOf(1, 2, 3, 4, 5)
val result = list.find { it > 3 }
println(result)  // 输出 4,因为 4 是第一个大于 3 的元素

解释:
find 会遍历集合中的每个元素,并在第一个符合条件的元素找到时停止,返回该元素。
如果没有元素符合条件,find 会返回 null。

使用 any 函数

any 用于检查集合中是否存在至少一个符合条件的元素。如果存在,返回 true;否则返回 false。

kotlin">val list = listOf(1, 2, 3, 4, 5)
val result = list.any { it > 3 }
println(result)  // 输出 true,因为集合中有元素大于 3

解释:
any 会遍历集合中的每个元素,直到找到第一个符合条件的元素时返回 true,否则返回 false。
如果集合中没有任何元素符合条件,它会返回 false。


http://www.ppmy.cn/embedded/153381.html

相关文章

信息安全、网络安全和数据安全的区别和联系

信息安全、网络安全和数据安全是信息安全领域的三大支柱,它们之间既存在区别又相互联系。以下是对这三者的详细比较: 一.区别 1.信息安全 定义 信息安全是指为数据处理系统建立和采用的技术和管理的安全保护,保护计算机硬件、软件和数据不…

在一个地方待多久才会改变ip属地

‌在当今数字化时代,IP地址作为网络世界的“门牌号”,不仅承载着设备连接互联网的身份信息,还常常与地理位置相关联。随着人们频繁地迁徙、旅行或在不同地点工作,一个自然而然的问题浮现在许多人心头:究竟在一个地方待…

ubuntu20下编译linux1.0 (part1)

author: hjjdebug date: 2025年 01月 09日 星期四 15:56:15 CST description: ubuntu20下编译linux1.0 (part1) 该博客记录了新gcc编译旧代码可能碰到的问题和解决办法, 可留作参考 操作环境: ubuntu20 $ gcc --version gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 $ as --vers…

神州数码交换机和路由器命令总结

神州数码交换机和路由器命令总结 一、神州数码交换机命令总结 1. 交换机恢复出厂设置及其基本配置. 1) //进入特权模式 2) del startup.cfg 2. Telnet方式管理交换机. 1) //进入全局配置模式 2) enable password 0 [密码] 3) Line 0 4 4) Password 0 [密码] 5) Login 3. 交换机…

HarmonyOS Next 日志工具介绍

HarmonyOS Next 日志工具介绍 在HarmonyOS Next开发中,日志是我们调试定位问题的主要手段,不管是hilog还是console,最终都可以输出到DevEco Studio的日志模块中: 在这里可以过滤应用进程、日志级别、日志内容呢,也可…

Kafka 会丢消息吗?

目录 01 生产者(Producer) 02 消息代理(Broker) 03 消费者(Consumer) 来源:Kafka 会丢消息吗? Kafka 会丢失信息吗? 许多开发人员普遍认为,Kafka 的设计本身就能保证不会丢失消息。然而,Kafka 架构和配置的细微差别会导致消息的丢失。我们需要了解它如何以及何时…

第六届土木建筑及灾害防控国际学术会议暨第三届智慧城市建筑与基础设施耐久性国际学术会议(CADPC DuraBI 2025)

第六届土木建筑及灾害防控国际学术会议暨第三届智慧城市建筑与基础设施耐久性国际学术会议(CADPC & DuraBI 2025)将于2025年2月28日-3月2日在青岛举办。会议将以“建筑技术”、“灾害预测”、“灾害防控”、“灾后重建”等主题展开学术研讨&#xff…

Euler 21.10(华为欧拉)安装oracle19c-RAC

1. Euler 21.10安装oracle19c-RAC 1.1. 环境规划 1.1.1. 主机规划 hostname IP 实例名 hfdb90 192.168.40.90 hfdb1 hfdb91 192.168.40.90 hfdb2 系统版本 BigCloud Enterprise Linux For Euler 21.10 (GNU/Linux 4.19.90-2107.6.0.0100.oe1.bclinux.x86_64 x86_6…