欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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))