Scala中的foreach 和 map 方法比较

Scala中的集合对象都有fireach和map量方法。

**相同:**都属于遍历集合对象,并对每一项执行指定的方法。

**相异:**foreach无返回值(准确的说返回void),map返回集合对象。

下列代码中,b.getClass得到的是void,而c.getClass得到的是colletion。,foreach和map运行结果一致。

结论就是:foreach无法代替map而map方法可以代替foreach。

问题:为什么Scala提供foreach和map两种方法呢?本人看法Scala作为一种支持函数式编程范式的语言,必然要引入一种jizhi以支持数学中的函数概念,在数学函数中函数就是映射,所以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 = someNumbrs.foreach(increase)
	println(b.getClass)
	var c = someBumbers.map(increase)
	println(c.getClass)
	
	c.foreach((x:Int)=>print(x+" "))
	println()
	c.map((x:Int)=>print(x+" 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值