object ReduceDemo01 {
def main(args: Array[String]): Unit = {
/*
使用化简的方式来计算list集合的和
*/
val list = List(1, 20, 30, 4, 5)
val res = list.reduceLeft(sum) //接收一个函数时,也可以直接传入一个匿名函数
//执行的流程分析
//步骤 1 (1 + 20)
//步骤 2 (1 + 20) + 30
//步骤 3 ((1 + 20) + 30) + 4
//步骤 4 (((1 + 20) + 30) + 4) + 5 = 60
println("res="+res) // 60
}
def sum(n1: Int, n2: Int): Int = {
println("sum被调用~~")
n1 + n2
}
}
object ReduceExercise01 {
def main(args: Array[String]): Unit = {
val list = List(1, 2, 3, 4, 5)
def minus(num1: Int, num2: Int): Int = {
num1 - num2
}
// (((1-2) - 3) - 4) - 5 = -13
println(list.reduceLeft(minus)) // 输出? -13
// 1 - (2 - (3 -(4 - 5))) = 3
println(list.reduceRight(minus)) //输出? 3
// reduce 等价于 reduceLeft
println(list.reduce(minus))
println("minval=" + list.reduceLeft(min)) // 1
}
//求出最小值
def min(n1: Int, n2: Int): Int = {
if (n1 > n2) n2 else n1
}
}
网友评论