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

kotlin 高阶函数用法

继续测试下kotlin常用高阶函数用法,也就是有参数是函数的函数:

private fun testOthers() { val numbers = listOf(1, 2, 3, 4, 5) val evenNumbers = numbers.filter { it % 2 == 0 } val doubledNumbers = numbers.map { it * 2 } println("zxzx, numbers: $numbers") println("zxzx, evenNumbers: $evenNumbers") println("zxzx, doubledNumbers: $doubledNumbers") val numbers2 = listOf("1", "2", "灭绝师太", "3", "周芷若") val validNumbers = numbers2.mapNotNull { it.toIntOrNull() } // 字符串转换数字,过滤空值 println("zxzx, validNumbers: $validNumbers") // 扁平化嵌套集合 val lists = listOf(listOf("i", "always"), listOf("love"), listOf("vicky", "du"), listOf("!")) val result = lists.flatMap { it } println("zxzx, $result") data class User(val name: String, val hobbies: List<String>) val users = listOf( User("vicky du", listOf("网购", "凉皮面", "鸭血粉丝", "摄影", "八卦", "户外活动")), User("daling zhou", listOf("户外活动", "编程", "花生", "打游戏", "刷美女")) ) val allHobbies = users.flatMap { it.hobbies } // 从对象中提取嵌套集合 println("zxzx, $allHobbies") data class MeiNv(val name: String, val age: Int) // 美人 val meiNvs = listOf<MeiNv>(MeiNv("西施", 18), MeiNv("貂蝉", 16) , MeiNv("陈圆圆", 17), MeiNv("灭绝师太", 38), MeiNv("苏小妹", 15)) val result1 = meiNvs.takeWhile { it.age < 30 }.dropWhile { it.age < 16 } // 筛选条件 println("zxzx, 选美结果为:") result1.forEach { println("zxzx, ${it.name}")} // 使用 reduce 计算总和 val sum = listOf(1, 2, 3, 4, 5).reduce { acc, value -> acc + value } println("zxzx, sum = $sum") // reduce函数计算最大值 println("zxzx, max: ${listOf(1, 2, 3, 4, 5).reduce { acc, value -> if (acc > value) acc else value }}") // 字符串拼接 println("zxzx, ${listOf("司马懿:", " ", "听诸葛亮弹琴,如观其肺腑也。").reduce { acc, word -> acc + word }}") }

打印:

ok. 用起来很灵活,很方便。

http://www.jsqmd.com/news/410876/

相关文章:

  • 2026广东最新天然野生沉香批发top10推荐!广州等地优质沉香生产厂家权威榜单发布,品质纯正选品指南 - 十大品牌榜
  • 盘点江苏公司认证服务,口碑排名靠谱机构大盘点 - mypinpai
  • Excel VBA对象模型
  • 互联网大厂Java求职面试实战:核心技术栈与支付金融服务场景深度解析
  • 学霸同款! 降AIGC软件 千笔·专业降AI率智能体 VS PaperRed,继续教育首选
  • 国产化CKEDITOR编辑器支持PDF文档直接粘贴上传到云存储吗?
  • Nlog 配置文件示例
  • 或许是八字手链人物传记计划外传——胡哥
  • 清单来了:9个AI论文软件深度测评,自考毕业论文写作必备工具推荐
  • 科研党收藏!继续教育论文神器 —— 千笔写作工具
  • 北京除甲醛产品多少钱,怎么选心里要有数 - 工业品网
  • 2026年美的净水器厂商口碑排名,看看哪家更靠谱 - mypinpai
  • 直接上结论:本科生专属降AIGC网站,千笔·降AI率助手 VS 万方智搜AI
  • Excelize 开源基础库发布 2.10.1 版本更新
  • 伺服PMSM中频振动抑制的相位补偿速度观测器仿真验证与离散化实现含源码
  • Nlog 示例
  • 工业4G/5G路由器制造商哪家好,适用能源领域靠谱的品牌有哪些 - myqiye
  • 2026年必看!防火涂料性能与应用,适配工程选型方法论全解析,油性防火涂料/隧道防火涂料,防火涂料订做厂家有哪些 - 品牌推荐师
  • 计算机毕业设计springboot文理校园理发店平台 基于SpringBoot的高校智慧美发预约服务平台 SpringBoot框架下的大学生理发服务数字化管理系统
  • Go Lang中JSON文件的读写操作
  • 计算机毕业设计springboot法律咨询援助平台 基于SpringBoot的在线法律服务平台设计与实现 SpringBoot框架下的数字化法律援助系统开发
  • 辽宁大学 —— 计算机科学与技术学位授权点建设年度报告
  • 聊聊2026年湖南、广西碳黑推荐厂商,哪家性价比高 - 工业设备
  • 维普AIGC检测率突然变高?2026新算法下的应对策略 - 我要发一区
  • 2026年上海有名的代理记账企业排行榜,前十名是哪些? - 工业品网
  • 收缩袋制造厂推荐哪家技术好,天津金盛昱表现出色 - myqiye
  • 2026年北京启程旅行社价格透明程度,与其他社优势对比及当地知名度排名 - mypinpai
  • 维普AIGC检测系统2026年更新了什么?最新算法解读与应对方案 - 我要发一区
  • 从入门到实战:Docker核心技能全解析,容器化部署不再难
  • 计算机毕设java电影推荐网站 SpringBoot框架下智能影评与影片推送系统开发 基于协同过滤算法的在线电影发现与社区交流平台构建