高阶函数
- 高阶函数:一种特殊的函数 它的参数,或者是返回值是函数
- 把arr中的每个元素都变成自己的2倍 并返回一个新数组?
object hai27 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4)
val fn = (x:Int) => x*2
val arr1 = arr.map(fn)
for(i<-arr1){
println(i)
}
}
}
- array表示数组 map就是它的方法
- map就是一个高阶函数 它的参数是一个函数
object hai28 {
def main(args: Array[String]): Unit = {
val arr = Array(-1,2,-3,-4)
//val fn = (x:Int) => x* -1
val arr1 = arr.map(x => if(x >=0)x else -x)//x的绝对值
for(i<-arr1){
println(i)
}
}
}
object hai29 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5)
// val fn = (x:Int) => x* x
val arr1 = arr.map(x => x* x)
for(i<-arr1){
println(i)
}
}
}
foreach函数
依次打印每个元素
object hai30 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5)
// val fn = (x:Int) => x* x
arr.foreach(println)
}
}
filter函数
-
作用:对数组元素使用函数进行过滤
-
语法:新数组=旧数组.filter(回调函数)
-
filter的参数是一个函数 如果这个函数返回true 则当前元素会被保留下来
- 只保留arr中的偶数 并存放在一个新的数组中
object hai31 {
def main(args: Array[String]): Unit = {
val arr = Array(0,2,3,4,5)
var arr1 = arr.filter(x => x%2 ==0)
arr1.foreach(println)
}
}
- 过滤序列
- 去掉不及格分数
object hai32 {
def main(args: Array[String]): Unit = {
val arr = Array(60,59,80,70)
var arr1 = arr.filter(x => x>=60)
arr1.foreach(println)
}
}
object hai33 {
def main(args: Array[String]): Unit = {
val arr = Array(100,51,55,67,59,89)
var arr1 = arr.map(x => if(x >= 56 && x <= 59)60 else x)
arr1.foreach(println)
}
}