risc-v中文社区

 找回密码
 立即注册
查看: 1108|回复: 0

[原创] reduce操作

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-9-4 20:49:57 | 显示全部楼层 |阅读模式
在Scala中,可以使用reduce这种二元操作对集合中的元素进行归约。reduce包含reduceLeft和reduceRight两种操作,前者从集合的头部开始操作,后者从集合的尾部开始操作。
    val a = List(1,2,3,4,5,6)
    println(a.reduce((x,y)=>if(x%2==0)x+y else x-y))
    println(a.reduceLeft((x:Int,y)=>if(x%2==0)x+y else x-y))
    println(a.reduceRight((x,y)=>if(x%2==0)x+y else x-y))
    println(a.reduce(_-_))
    println(a.reduceLeft(_-_))
    println(a.reduceRight(_-_))
显示如下:
-1
-1
-1
-19
-19
-3

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-19 11:27 , Processed in 0.015731 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表