Scala的高阶函数

1.高阶函数的定义:

//学习一些常见的高阶函数(与数组,列表相关的)的用法
    //Array:数组
//    var arr=Array(1,2,3,4,5)
    //arr就是一个数组

2.scala的map函数,返回值构建了一个新的数组通过应用函数遍历数组中的每一个元素,map函数在代码中的应用

def main(args: Array[String]): Unit = {
//(1)map
    //作用:通过对数组的每一个元素应用一个函数来构建一个新数组
   //格式:新数组= arr.map(函数,接收一个元素,返回一个值)
    val fn =(x:Int) => 2*x //字面量格式定义函数
    var arr1=arr.map(fn) // map是一个高阶函数,因为它的参数是一个函数
      var arr1=arr.map((x:Int) => 2*x)//map是一个高阶函数,因为它的参数是一个函数
      for (i <- arr) {
       println(i)
    }
    //把(1,2,3,4,5)->(1,4,9,16,25)
    var arr1 =arr.map((x:Int) =>x*x)
    for (i <- arr1) {
            println(i)
          }
    //把(-1,2,-3,-4)->(1,2,3,4)
    var arr1=Array(-1,2,-3,-4)
    var arr2=arr1.map((y:Int) => if (y>0) y else -1*y)
       for (i <- arr2) {
          println(i)
     }
}

3.foreach函数可以遍历集合对象,foreach没有返回值,foreach的作用,对数组的的每一个元素都执行一次函数,没有返回值代码说明:

def main(args: Array[String]): Unit = {
 var fn=(x:Int) =>{
     println(x)
   }
    var arr1=arr.foreach(fn)
    //println:就是一个函数
    var arr=Array(-1,2,-3,-4)
    arr.foreach(println)
}

4.scala中的filter函数,根据函数返回值来确定过滤数组中的元素,最终返回的也是一个数组,如果返回值为真,将保留元素中的值;如果为假则过滤元素。filter函数的实际应用

def main(args: Array[String]): Unit = {
 var arr1=Array(60,59,80,70)
 //任务,去掉不及格的数
    var arr1 =arr.filter((x:Int)=>x>=60)
    arr1.foreach(println)
}

5.scala中的flatten函数,是指将二维数组中的元素展平至单数组中,实例应用如下:

def main(args: Array[String]): Unit = {
 var arr=Array(
      Array(60,90,99),
      Array(61,91,99),
      Array(62,92,99),
      Array(63,93,99),
    )//4个人,每个人都有3门课的成绩
    var arr1=arr.flatten
    println(arr1.sum)
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值