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)
}
}