高阶函数:是一种特殊的函数,特殊之处在于:他只是用其他函数作为参数或者返回值
- fn 是一个字面里函数
- map 是一个高阶函数,因为它的参数类型是 函数
object Base54 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5)
val fn = (x:Int) => x * 2
val arr1 = arr.map(fn)
for(i <- arr1){
println(i)
}
}
}
- 没有必要去单独定义一个函数fn,这里直接写在map函数内,此时,它就是一个匿名函数
object Base54 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5)
// val fn = (x:Int) => x * 2
// val arr1 = arr.map(fn)
//
val arr1 = arr.map(x => x * 2)
for(i <- arr1){
println(i)
}
}
}
#把-1 2 -3 -4改为1 2 3 4
object Base55 {
def main(args: Array[String]): Unit = {
val arr = Array(-1,2,-3,-4)
// val fn = (x:Int) => x * 2
// val arr1 = arr.map(fn)
//
val arr1 = arr.map(x => if(x>0) x else -x )
for(i <- arr1){
println(i)
}
}
}
foreach :依次使用当前的函数来处理数组中的每一个元素
object Base56 {
def main(args: Array[String]): Unit = {
val arr = Array(-1,2,-3,-4,5)
arr.foreach(println)
}
}
- 把数组中的偶数保留下来,组成新数组
object Base56 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5)
val arr1 = arr.filter(x => x%2 == 0)
arr1.foreach(println)
}
}
- 去掉不及格的分数
object Base57 {
def main(args: Array[String]): Unit = {
val arr = Array(60,59,80,70,57)
val arr1 = arr.filter(x => x >= 60)
arr1.foreach(println)
}
}
flatten 不要加()的函数
object Base58 {
def main(args: Array[String]): Unit = {
val arr1 = Array(Array(1,2,3), Array(4,5,6));
println(arr1(0)(0))
val arr2 = arr1.flatten
arr2.foreach(println)
}
}