功能函数中应用模式匹配(重点)比如在map函数中使用
map中使用的话,map后边的()需要变成{}
1、场景:之前的map是这样的,因为不方便所以才会用模式匹配。让它处理方便


1)因为下划线1,下划线2 时间长了就记不住
2)上面发现Map 中每个都是tuple,tuple 是可以做模式匹配的,t 就是tuple
3)开始模式匹配:把tuple 换成((prv,item,),cnt)
4)prv对应着地区,item对应着商品,cnt 对应的就是数量
5)map的时候做这样的转换

这样就省去了下划线,看着和操作都更方便
6) 在map的时候进行模式匹配的时候, 需要注意两点,
1、在没有进行匹配的时候,传递的都是一个tuple,是一个整体,

,因为有逗号,map方法就是传递一个参数,马丁认为这里是参数列表,而不是一个整体。
所以在使用的时候就需要加上关键字,case

2、因为在使用模式匹配的时候,可能会有多种case 情况,行数就会太多了, 所以map后面原本的小括号需要换成花括号{}

功能函数会大量的使用模式匹配
第二个小案例:

第三个小案例:
自己对功能函数中模式匹配的理解:
理解一下功能函数中的模式匹配吧。按照自己的理解
功能函数传递的都是集合中的一个一个的元素,此时需要对元素进行模式匹配
符合某个规则的元素进入一种操作逻辑,符合某种规则的元素进入一种逻辑
以这个为例:
i和s 都是元素(符合某种规则的元素)
=>左边的就是元素, =>右边的就是需要执行的逻辑
代表元素传递进来,相应的元素走相应的通道,执行相应的逻辑
网友评论