什么是高阶函数
高阶函数:是一种特殊的函数,特殊之处在于:它指使用其他函数作为参数或者返回值。 Scala的常见高阶函数包括:Array.map、flatten、flatmap、foreach、reduce、filter和fold等。
object Sc47 {
/**
* 数组
*/
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)
}
}
}
mpa函数
object Sc48 {
/**
* 数组
*/
def main(args: Array[String]): Unit = {
val arr = Array(-1,-2,-3,-4,-5)
val arr1 = arr.map(x => x.abs)
for(i <- arr1) {
println(i)
}
}
}
foreach函数
object Sc49 {
/**
* 数组
*/
def main(args: Array[String]): Unit = {
val arr = Array(-1,-2,-3,-4,-5)
arr.foreach(x => { println(x) })
arr.foreach(println)
}
}
filter函数
任务:在数组中找出元素是偶数的,并组成新数组。(1,2,3,4,5) → (2,4)
object Sc49 {
/**
* 数组
*/
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)
}
}
flatten函数
作用:将二维数组中的元素展平至单数组中
语法:二维数组.flatten。不需要写()
object Sc50 {
/**
* 数组
*/
def main(args: Array[String]): Unit = {
val arr1 = Array( Array(1,2,3), Array(4,5,6));
arr1(0).foreach(println)
println(arr1(0)(0))
var arr2 = arr1.flatten
arr2.foreach(println)
}
}