Scala的函数组合器
程序员文章站
2024-03-03 16:14:52
...
Scala为各种数据结构提供了很多函数组合器,运用函数组合器的操作会在集合中的每个元素上分别应用一个函数,即组合器的参数都是一个函数。
map
指通过一个函数重新计算列表中的所有元素,并且返回一个相同数目元素的新列表。
foreach
和map类似,但是foreach没有返回值,只是为了对参数进行作用。
val num:List[Int]=List(1,2,3,4,5);
num.foreach(x => print(x*x+"\t"));
filter
过滤函数移除传入函数的返回值为false的元素。
flatten
可以把嵌套的结构展开,或者说可以把一个二维列表展开成一个一维的列表。
val num:List[List[Int]]=List(List(1,2,3),List(4,5,6));
print(num.flatten);
输出:List(1, 2, 3, 4, 5, 6)
flatMap
结合了map和flatten的功能,接收一个可以处理嵌套列表的函数,然后把返回结果连接起来。
val num:List[List[Int]]=List(List(1,2,3),List(4,5,6));
print(num.flatMap(x => x.map(_*2)));
输出:List(2, 4, 6, 8, 10, 12)
groupBy
对集合中的元素进行分组操作,结果得到的是一个Map。
val num:List[Int]=List(1,2,3,4,5,6,7,8,9,10);
print(num.groupBy(x => x%2==0));
输出:Map(false -> List(1, 3, 5, 7, 9), true -> List(2, 4, 6, 8, 10))