scala foldLeft foldRight 区别

  • foldLeft foldRight 相比之前的 reduceLeft, reduceRight 多增加初始值, foldLeft 在集合左边增加元素, foldRight 在集合右边增加元素
  • foldLeft 从左往右遍历, foldRight 从右往左遍历, 不过注意参数顺序仍然是集合元素的正序顺序
 /*
   */
  @Test
  def testFoldLeft() = {
   val list = List(4, 5, 6)
    /*
    fold 指定初始值

    与 reduce 区别, 可以理解为在 左侧/右侧 增加了一个元素
    返回值与这个新增元素类型相同
     */

    // ((1 - 4) - 5) - 6
    println(list.foldLeft(1)(_ - _))

    // 4 - (5 - (6 - 1))
    println(list.foldRight(1)(_ - _))
  }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值