主要内容:
1. 什么是高阶函数?
2. map的作用是?
3. foreach的作用是?
4. filter的作用是?
(一)高阶函数
[讲] 高阶函数是一种特殊的函数,特殊之处在于:它指使用其他函数作为参数或者返回值。
Scala的常见高阶函数包括Array.map、flatten、flatmap、foreach、reduce、filter和fold等。
(二)map函数
任务:把数组(1,2,3,4,5) → (2,4,6,8,10)
[讲] 作用:通过对数组的每一个元素应用一个函数来构建一个新数组。
[讲] 语法: 新数组 = 旧数组.map(旧元素=>新元素)
val arr1 = Array(1,2,3,4,5,6)
val arr2 = arr1.map(x=>x*2)
for(i <- arr2){
println(i)
}
(四)foreach函数
任务: 打印数组中的元素
[讲] 作用:对数组的每一个元素应用函数。
[讲] 语法:数组.foreach(元素=>{}
arr2.foreach(println)
(五)filter函数****
任务:在数组中找出元素是偶数的,并组成新数组。(1,2,3,4,5) → (2,4)
[讲] 作用:对数组元素使用函数进行过滤。
[讲] 语法:新数组= 旧数组.filter(元素=>bool) 它的参数是一个函数,这函数的返回值是布尔值。如果返回为true就保留。
[练] :去掉不及格的分数:(60,59,80,70) →(60,80,70)
object base047 {
/**
* filter
* 过滤器
* filter(函数)
* 如果函数的返回值为true,则元素就保留下来
**/
def main(args: Array[String]): Unit = {
// 把数值为偶数的保留下来
val arr1 = Array(1,2,3,4,5)
// val arr2=arr1.filter(x=> {
// //print(x)
// x%2 == 0
// })
val arr2=arr1.filter( x=> x%2==0 )
arr2.foreach(println)
val score= Array(90,98,60,49,100)
// 把小于80分的值去掉,只保留大于80分的分数
var score1=score . filter(x=> x>80).foreach(println)
}
}
运行结果如下: