14.6 高阶函数
我们上节课学习自定义的evaluate
函数, 还有以前学习过的map, filter, reduce
等都是高阶函数.
几个常用的高阶函数:
map
一帮用来从一个简单的集合中得到一个想要的集合.
filter
把一个集合中过滤掉不想要的集合
reduce
对一个集合中的所有元素进行归纳
// 计算 5 的阶乘
// _ * _ 表示一个二元函数(有两个参数的函数)
// 第一个 _ 表示第一个参数, 第二个 _ 表示第二个参数
println((1 to 5).reduce(_ * _))
foreach
和map
有点类似, 也是会遍历集合中的每个元素. 但是foreach
不会返回任何的值.
// 打印一个三角形
(1 to 9).map("*" * _).foreach(println _)
sortWith
object HighLevelDemo1 {
def main(args: Array[String]): Unit = {
// 返回一个按长度递减的数组
val arr1: Array[String] =
"I love playing Game"
.split(" ")
.sortWith(_.length > _.length)
println(arr1.toBuffer)
}
}