Scala 中的foreach和map方法比较
来源:互联网 发布:网络缓存级别 影音先锋 编辑:程序博客网 时间:2024/05/21 07:10
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用于映射(转换)集合到另一个集合。
1 object arrayTest extends App{ 2 var increase=(x:Int)=>x+1 3 val someNumbers = List ( -11, -10, - 5, 0, 5, 10) 4 var b = someNumbers.foreach(increase) 5 println(b.getClass) 6 var c = someNumbers.map(increase) 7 println(c.getClass) 8 9 c.foreach((x:Int)=>print(x+" "))10 println()11 c.map((x:Int)=>print(x+" "))12 13 }
运行结果:
原文链接:http://www.cnblogs.com/1zhk/p/4710580.html
0 0
- Scala 中的foreach和map方法比较
- scala中map和foreach的区别
- Scala中的Map和Set
- Scala中的Map和Tuple
- scala中的map和tuple
- JavaScript中的forEach、$.each、map方法
- Scala学习笔记之`map`、`reduce`和`foreach`
- es5 forEach 和 map 方法使用
- javascript的map和forEach,for性能比较
- JS中的forEach、map方法 与 jQuery的$.each方法
- 6.Scala中的Map和Tupple
- 学习Scala:Scala中的字段和方法
- scala中的函数组合器map,foreach,flatmap,flatten,filter,zip等用法
- scala中的函数组合器map,foreach,flatmap,flatten,filter,zip等用法
- Js中的fliter(),map(),forEach()迭代方法
- JavaScript中的数组遍历forEach()与map()方法分析
- scala中的函数和方法
- Scala中的方法和函数
- Android6.0蓝牙探索旅程
- n个骰子的点数之和
- 这几条UI原则可以让你的设计提高(中)
- 头尾式动画
- 几种计算机视觉中常用的聚类算法(K-means, Agglomerative clustering, Mean shift, Spectral clustering)
- Scala 中的foreach和map方法比较
- Java持久层的三种查询方式
- MyBatis学习笔记
- 操作系统与网络实现 之十八(丙)
- PAT_乙级 1009 说反话
- C++单例模式如何进行释放控制
- Android Studio快捷键(Window,Mac)
- 2016.11.1第二题 音量调节 codevs 2278
- 62 & 63. Unique Paths I & II