scala匿名函数
我们在使用scala的时候经常会碰到=>写法
官方文档给出的解释是:=>箭头左边的元组是参数列表,右侧的表达式的值是返回的值
同时=>在scala中代表匿名函数,表示创建了一个函数实例
所有的函数在scala中都是object
实例形式:
(x:Int)=>{函数体}
x:表示输入参数类型;Int:表示输入参数类型;函数体:表示具体代码逻辑
val fun = (name: String) => { println("name") }
没有名称的函数就是匿名函数,可以被赋值给一个量。也叫lambda表达式
匿名函数定义时不能有函数的返回值类型
匿名函数的简化规则
(1)参数的类型可以省略,会根据形参进行自动的推导
(2)类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参 数超过 1 的永远不能省略圆括号。
(3)匿名函数如果只有一行,则大括号也可以省略
(4)如果参数只出现一次,则参数省略且后面参数可以用_代替
实例1:传递一个函数,该函数中只有一个参数
实例2:传递函数,该函数有两个参数
实例3:定义一个函数funTest,它接受一个int类型的参数和string类型的参数,返回一个string参数,中间调用一个f函数返回的参数,该函数返回一个int类型的参数,funTest输出字符串以及返回的参数。
实例4:输入三个参数,第一个参数判断他是偶数还是奇数,偶数则对后面已知的两个数求和,奇数则对后面已知的两个数求差