scala中"=>"的使用
1.场景一:定义函数表达式
2.场景二:函数传名调用(直接将未计算的表达式作为参数传入)
Scala的解释器在解析函数参数(function arguments)时有两种方式:
①call-by-value:
先计算参数表达式的值,再应用到函数内部;
②call-by-name:
将未计算的参数表达式直接应用到函数内部。
在进入函数内部前,传值调用方式就已经将参数表达式的值计算完毕,而传名调用是在函数内部进行参数表达式的值计算的。这就造成了一种现象,每次使用传名调用时,解释器都会计算一次表达式的值。
在变量名和变量类型使用 => 符号来设置传名调用
3.场景三:模式匹配
一个模式匹配包含了一系列备选项,每个都开始于关键字
case
。每个备选项都包含了一个模式及一到多个表达式。箭头符号
=>
隔开了模式和表达式。
4.场景四:匿名函数
箭头左边是参数列表,右边是函数体,使用匿名函数的目的是将代码变得更简洁。
例1:定义一个匿名函数求两者和
例2:也可以不给匿名函数设置参数
不需要传入参数即可调用
例3:折叠操作(类似于定义并执行匿名函数)
a代表种子参数(这里是空列表),b代表遍历前面集合得到的每个元素