开发者学堂课程【Scala 核心编程 - 进阶:集合化简的流程示意图】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9053
集合化简的流程示意图
内容介绍:
一.化简
二.说明
三.求和
一.化简
看一个需求:val list =list(1,20,30,4,5),求出 list 的和
化简:
将二元函数引用于集合中的函数,上面的问题当然可以使用便历 list 方法来解决,这里我们使用 scale 的化简方式来完成。
二.说明
说明
1)defreduceleft[B>:A](@deprecatedName('f) op:(B,A)=>B):B
2)reduceleft(f)接收的函数需要的形式为op:(B,A)=>B):B
3)reduceleft(f)的运行规则是从左边开始执行将得到的结果返回给第一个主数
4)然后继续和下一个元素运行,将得到的结果继续返回给第一个参数,继续
5)即://(((1+2)+3}+4)+5)15
如图
三.求和
刚才描述了求和的过程,前提是 reducelefft 不断求和化解,实际价值就比如将来有一个很多的集合,我要求其中最小的数,这里面有100个数,要求找出最小的数,如果有了这个 reducelefft 那个大,那个小就可以直接看出来,我们在接受一个高阶函数的时候,可以直接看到更多用法,可以不用写函数名,直接就是匿名函数,类似于学加法,函数是编程专门用的数,将来在接受一个函数时,可以直接传入匿名函数,一样可以使用,这是一种语法的规则,类似于一种加法,还有一个流程叫做 reduceright ,它是从右开始化解。
将来接收一个函数时,也可以直接传入一个匿名函数,这是语法的一种规则,从右化解这是 reduceright 唯一不同的地方。