推荐答案
// www.javascriptcn.com code example
val numbers = listOf(1, 2, 3, 4, 5)
// filter: 过滤出符合条件的元素
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // 输出: [2, 4]
// map: 将每个元素转换为另一种形式
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers) // 输出: [1, 4, 9, 16, 25]
// forEach: 对每个元素执行操作
numbers.forEach { println(it) } // 输出: 1 2 3 4 5
// reduce: 将集合中的元素累积为一个值
val sum = numbers.reduce { acc, num -> acc + num }
println(sum) // 输出: 15
// fold: 类似于reduce,但可以指定初始值
val sumWithInitial = numbers.fold(10) { acc, num -> acc + num }
println(sumWithInitial) // 输出: 25本题详细解读
filter
filter 函数用于从集合中筛选出符合条件的元素。它接受一个谓词(即一个返回布尔值的 lambda 表达式),并返回一个新的集合,其中包含所有满足该谓词的元素。
val evenNumbers = numbers.filter { it % 2 == 0 }在这个例子中,filter 函数筛选出了所有偶数。
map
map 函数用于将集合中的每个元素转换为另一种形式。它接受一个转换函数(即一个 lambda 表达式),并返回一个新的集合,其中包含转换后的元素。
val squaredNumbers = numbers.map { it * it }在这个例子中,map 函数将每个元素平方。
forEach
forEach 函数用于对集合中的每个元素执行指定的操作。它接受一个操作函数(即一个 lambda 表达式),并对集合中的每个元素执行该操作。
numbers.forEach { println(it) }在这个例子中,forEach 函数打印了集合中的每个元素。
reduce
reduce 函数用于将集合中的元素累积为一个值。它接受一个累积函数(即一个 lambda 表达式),并将集合中的元素从左到右依次累积。
val sum = numbers.reduce { acc, num -> acc + num }在这个例子中,reduce 函数将集合中的所有元素相加,返回它们的总和。
fold
fold 函数与 reduce 类似,但它允许你指定一个初始值。它接受一个初始值和一个累积函数(即一个 lambda 表达式),并将集合中的元素从左到右依次累积。
val sumWithInitial = numbers.fold(10) { acc, num -> acc + num }在这个例子中,fold 函数从初始值 10 开始,将集合中的所有元素相加,返回它们的总和。