kotlin 高阶函数用法

📅 发布时间:2026/7/11 19:45:23 👁️ 浏览次数:
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: ListString) 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 listOfMeiNv(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. 用起来很灵活很方便。