package base06
/**
* Created by dd on 2016/5/19 0019.
*/
object demo02 extends App{
// 具有多参数的函数值
def inject(arr: Array[Int], initial: Int, operation: (Int, Int)=> Int): Int ={
var carryOver = initial
arr.foreach(ele=> carryOver = operation(carryOver,ele))
carryOver
}
val array = Array(2,3,4,5,6)
val sum = inject(array,0,(carryOver,ele)=>carryOver+ele)
println("the sum of the array is "+sum)
val max = inject(array,Integer.MIN_VALUE, (carryOver,ele)=> Math.max(carryOver,ele))
println("the max value of the array is "+max)
println("---------------------------------------------------------------------")
var array2 = Array(2,3,4,5,6)
val sum2 = (0 /: array2){(sum2,ele)=> sum2+ele}
println("the sum of the array is "+sum2)
val max2 = (Integer.MIN_VALUE /: array2){(large,ele)=> Math.max(large,ele)}
println("the max value of the array is "+max2)
}
Programming Scala第6章 demo02 高阶函数
最新推荐文章于 2024-07-03 00:45:04 发布