//判断高阶函数方法:1.类型是函数,2.返回值也是函数 object fsfg { def main(args: Array[String]): Unit = { //学习一些常见的高阶函数(与数组,列表相关的)的用法 var arr = Array(1, 2, 3, 4, 5) //arr就是一个数组 println(arr(0)) //表示下标从0开始 //循环打印 for (i <- arr) { println(i) } //map //map作用:通过对数组的每一个元素应用一个函数来构建一个新数组 //map的格式:新的数组= arr.map(2函数:接收一个元素,返回一个值) // val fn=(x:Int)=>2*x//字面量格式定义函数 var arr1=arr.map((x:Int)=>2*x)//map是一个高阶函数,因为它的参数是一个函数 //循环打印 for(i<-arr1){ println(i) } }
案例如下:
//问题1:把(1,2,3,4,5)变成(1,4,9,16,25) object jdsdj { def main(args: Array[String]): Unit = { var a=Array(1,2,3,4,5) var a1=a.map((x:Int)=>x*x) for(i<-a1){ println(i) } } //问题2:把(-1,2,-3,-4)变成(1,2,3,4) var b=Array(-1,2,-3,-4) var b1=b.map((x:Int)=>if(x>0) x else -1*x) for (i <-b1) { println(i) }