scala中map和foreach的区别
来源:互联网 发布:全球复制软件 编辑:程序博客网 时间:2024/04/30 07:38
Scala中的集合对象都有foreach和map两个方法。两个方法的共同点在于:都是用于遍历集合对象,并对每一项执行指定的方法。而两者的差异在于:foreach无返回值(准确说返回void),map返回集合对象。见如下代码及运行结果:b.getClass 得到的是void, 而c.getClass得到的是colletion 。再看代码的第9-11行,foreach和map的运行结果一致。结论就是:foreach 无法代替map. 而map方法却可以代替foreach。
问题:为什么scala提供foreach和map两个方法呢?本人看法是scala做为一种支持函数式编程范式的语言,必然要引入一种机制以支持数学中函数概念,而在数学中函数就是映射,所以scala中有map方法一点都不奇怪。而foreach只是用在不需要对集合执行映射操作,但需要遍历集合时才用到。总而言之,foreach用于遍历集合,而map用于映射(转换)集合到另一个集合。
object arrayTest extends App{ var increase=(x:Int)=>x+1 val someNumbers = List ( -11, -10, - 5, 0, 5, 10) var b = someNumbers.foreach(increase) println(b.getClass) var c = someNumbers.map(increase) println(c.getClass) c.foreach((x:Int)=>print(x+" ")) println() c.map((x:Int)=>print(x+" "))}
1 0
- scala中map和foreach的区别
- forEach()和map()的区别:
- forEach 和 map 的区别
- forEach()和map()的区别
- map和foreach遍历的区别
- Scala 中的foreach和map方法比较
- scala的foreach和for
- forEach和map和for方法的区别
- js数组中forEach,map,filter的区别
- jq方法each、forEach和map的区别
- javascript array.forEach()和array.map()的区别
- scala中函数组合器的用法(map,filter,zip,foreach,groupBy,flatten,drop等)
- ThinkPHP中foreach和volist的区别
- ThinkPHP中foreach和volist的区别
- java中for和foreach的区别
- java中for和foreach的区别
- thinkPhp中 VOlist和 foreach 的区别
- jQuer中each和forEach的区别
- linux-4.3.0代码注释git地址
- Android中字符串拆分或拼接
- AsyncTask源码分析
- Linux系统安装 OpenSSL两种方法
- 深度神经网络
- scala中map和foreach的区别
- 2016 Multi-University Training Contest 4 1011 Where Amazing Happens(模拟)
- 如何创建内存映射文件,并对其进行写入与读取数据
- Http协议详解
- centos安装docker
- 新学期,新征程。。。。
- redis与spring集成--spring-data-redis
- levenshtein distance
- NYOJ:免费馅饼