开发者学堂课程【Scala 核心编程 - 进阶:折叠缩写方式】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9056
折叠缩写方式
内容介绍
一.折叠基本缩写方式
二.折叠运行过程
一.折叠基本缩写方式
foldleft 和 foldright 缩写方式分别是:/:和:\
V
al list4=list(1,9,2,8)
D
ef minus(num1:lnt,num2:lnt):lnt={
N
um1-numm2
}
V
ar i6=(1/:list4)(minus)//==>list4.foldleft(0)(minus)
printin(i6) //输出?
i6 = (100 /:list4) (minus)
printin(i6)//输出?
i6 = (list4 :\ 10) (minus) // list4 .foldRight(10)(minus)
printin(i6) //输出?
二.折叠运行过程
huocwfoldDemo02 执行一遍,是等级于 println(“i6等于+i6”),为了演示方便,就写一个1和9就行了 ,如果是1和9的话,就是1减去1等于0,0减去9,最后再等于9,
继续执行,等于负9,然后就完毕,
有时候看见另外一种写法,
如 i6=(100/:list4)(minus) println(i6)//输出?
是 i6=(100/:list4/)(minus)=等价=> list4.foldleft(1)(minus)
还有一种写法就是反过来写,对应的就是右折叠,把数写在斜杠的旁边,就是右折叠,如果是右折叠,就是1减去9 等于负8,负8再减去10应该等于负18,然后执行,最后输出看是否等于负18,9减去10等于负1,1减去负1等于12,这是化解的写法,这是我们的缩写方式,
代码
object FlodDemoe2{
def main(array: Array[string]): Unit ={
val list4 = List(1,9)
def minus(num1:Int,num2:Int):Int={
num1 -num2
}
V
ari6=(1/list4)(minus)//=等价=>list4.foldleft(1)(minus) println("i6="+i6)
i6=(100/:list4)(minus)//=等价=>list4.foldleft(100)(minus) println(i6)//输出?
i6 = (list4 :\ 10) (minus) // list4.foldRight(10)(minus)
println(i6)//输出?2