当前位置: 首页 > news >正文

Kotlin 中适用集合数据的高阶函数(forEach、map、filter、groudBy、fold、sortedBy)

  • 在 Kotlin 中,高级函数(Higher-Order Functions)是一个非常强大的特性。高级函数是指可以将函数作为参数传递,或者将函数作为返回值返回的函数。这种特性使得代码更加灵活和可复用。
  • 使用高级函数可以方便地对集合进行操作,如 map、filter、reduce 等。
  • 在事件驱动的编程中,高级函数可以作为回调函数传递。

1、forEach 函数

  • forEach 适用于对集合中的每个元素执行操作。它接受一个 Lambda 表达式作为参数,该 Lambda 表达式定义了对每个元素的操作。
  • forEach 是一个扩展函数,定义在 Iterable 上,适用于所有可迭代的集合(如 List、Set、Map 等)
  • forEach 是一个内联函数(inline),这意味着它在编译时会被展开,避免了函数调用的开销。因此,forEach 在性能上是非常高效的。
inline fun <T> Iterable<T>.forEach(action: (T) -> Unit): Unit
  • action 是一个 Lambda 表达式,它接受集合中的每个元素作为参数,并对每个元素执行指定的操作。
val numbers = listOf(1, 2, 3, 4, 5)
numbers.forEach { number ->println("Number: $number")
}val fruits = setOf("Apple", "Banana", "Cherry")
fruits.forEach { fruit ->println("Fruit: $fruit")
}
  • 如果需要访问元素的索引,可以使用 forEachIndexed
val numbers = listOf(1, 2, 3, 4, 5)
numbers.forEachIndexed { index, number ->println("Index: $index, Number: $number")
}
  • forEach 函数本身没有返回值(返回值为 Unit)。它主要用于对集合中的每个元素执行操作,而不是对集合进行转换或返回新的集合。
  • forEach 可以与其他集合操作函数链式调用,但需要注意 forEach 本身没有返回值,因此链式调用通常用于调试或中间步骤。
val numbers = listOf(1, 2, 3, 4, 5)
numbers.filter { it % 2 == 0 }.forEach { println(it) }
  • forEach 用在 Map 上时,会将键值对作为参数传递给 Lambda 表达式。
val map = mapOf("a" to 
http://www.dtcms.com/a/343198.html

相关文章:

  • AI客服系统架构与实现:大模型、知识库与多轮对话的最佳实践
  • 蛋白质分析常用数据库2
  • QT开发---QT布局与QSS样式设置
  • 网络打印机自动化部署脚本
  • 工业机器人远程监控与运维物联网解决方案
  • 精准评估新纪元:AI得贤招聘官AI面试智能体6.3,重新定义AI面试
  • 赛灵思ZYNQ官方文档UG585自学翻译笔记与代码示例:Quad-SPl Flash 闪存控制器
  • 深度剖析字节跳动VeOmni框架
  • MySQL索引优化之索引条件字段类型不同
  • POI读和写
  • C2ComponentStore
  • CMOS知识点 MOS管线性区电流公式
  • Linux 网络命令大全
  • 在VSCode中配置.NET项目的tasks.json以实现清理、构建、热重载和发布等操作
  • vue2 watch 用法
  • K8s安全管理与持久化存储实战指南
  • Seaborn数据可视化实战:Seaborn入门-环境搭建与基础操作
  • Seaborn数据可视化实战
  • AI对口型唱演:科技赋能,开启虚拟歌者新篇章
  • 刷机维修进阶教程-----如何清除云账号 修复wifi 指南针 相机 指纹等刷机故障
  • 自然处理语言NLP:One-Hot编码、TF-IDF、词向量、NLP特征输入、EmbeddingLayer实现、word2vec
  • Linux 802.11协议栈深度分析与实践指南
  • 车机两分屏运行Unity制作的效果
  • OpenAI重新开源!gpt-oss-20b适配昇腾并上线魔乐社区
  • WebSocket连接的例子
  • 链游开发新篇章:融合区块链技术的游戏创新与探索
  • 什么是撮合引擎
  • 模型的量化-nf4和pf4
  • 基于STM32F103单片机智能门禁热释人体感应报警设计
  • C#串口单例 + 端口复用