博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala 中的foreach和map方法比较
阅读量:5942 次
发布时间:2019-06-19

本文共 816 字,大约阅读时间需要 2 分钟。

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 }

运行结果:

 

转载于:https://www.cnblogs.com/1zhk/p/4710580.html

你可能感兴趣的文章
【转】R语言笔记--颜色的使用
查看>>
.woff HTTP GET 404 (Not Found)
查看>>
.NET基础之自定义泛型
查看>>
HTML5 Canvas 实现的9个 Loading 效果
查看>>
java.lang.NoClassDefFoundError: org/apache/avro/ipc/Responder
查看>>
利用JasperReport+iReport进行Web报表开发
查看>>
JSON and Microsoft Technologies(翻译)
查看>>
ylbtech-LanguageSamples-ConditionalMethods(条件方法)
查看>>
js 判断各种数据类型
查看>>
【leetcode】Find Peak Element ☆
查看>>
linux:sed高级命令之n、N(转)
查看>>
触发器更新多条数据
查看>>
微信公众平台原创声明功能公测 自媒体原创保护的福音
查看>>
ADF_Advanced ADF系列2_Fusion应用的客制和个性化(Part2)
查看>>
php_linux_centos6.4_安装mysql_apache_php
查看>>
Myeclipse或Eclipse中搭建Easyui环境
查看>>
(转)数字格式化函数:Highcharts.numberFormat()
查看>>
我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
查看>>
CCNA2.0笔记_ipv6的EIGRP
查看>>
最短路径算法整理(二)
查看>>