> 文章列表 > scala匿名函数

scala匿名函数

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:输入三个参数,第一个参数判断他是偶数还是奇数,偶数则对后面已知的两个数求和,奇数则对后面已知的两个数求差

 

实例5:函数作为函数的返回值返回