scala常用高阶函数
// map->在列表的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表
def main(args:Array[String]) {
val num = List(1,2,3,4)
num.map((i:Int)=>i*2)
for (n <- num.map((i:Int)=>i*2)) {
println(n)
}
// 打印出2,4,6,8
}
// foreach->foreach和map相似,只不过没有返回值,foreach主要是为参数进行作用
def main(args:Array[String]) {
val num = List(1,2,3,4)
num.foreach((i:Int)=>i*2)
}
// filter->移除任何使得传入的函数返回false的元素
def main(args:Array[String]) {
val num = List(1,2,3,4)
num.filter((i:Int)=>i%2 ==0)
for (n <- num.filter((i:Int)=>i%2 ==0)) {
println(n)
}
// 打印出2,4
}
// zip->把两个列表的元素合并成一个由元素对组成的列表里
def main(args:Array[String]) {
val num = List(1,2,3,4)
val num2 = List(5,6,7,8)
println(num.zip(num2))
// 打印出List((1,5), (2,6), (3,7), (4,8))
}
// find->返回集合里第一个匹配断言函数的元素
def main(args:Array[String]) {
val num = List(1,2,3,4)
println(num.find(_ % 3 == 0))
// 打印出3
}
// flatten把嵌套的结构展开
def main(args:Array[String]) {
val num = List(List(1,2,3,4),List(5,6,7,8))
println(num.flatten)
// 打印出List(1, 2, 3, 4, 5, 6, 7, 8)
}
// flatMap是一个常用的combinator,它结合了map和flatten的功能
def main(args:Array[String]) {
val num = List(List(1,2,3,4),List(5,6,7,8))
val s = num.flatMap(x => x.map(_ * 2));
println(s)
// 打印出ListList(2, 4, 6, 8, 10, 12, 14, 16)
}