Scala 匿名函数
Posted 靠谱杨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala 匿名函数相关的知识,希望对你有一定的参考价值。
1)说明
没有名字的函数就是匿名函数。
(x:Int)=>函数体
x:表示输入参数类型;Int:表示输入参数类型;函数体:表示具体代码逻辑
2)案例实操
需求 1:传递的函数有一个参数
传递匿名函数至简原则:
(1)参数的类型可以省略,会根据形参进行自动的推导
(2)类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参
数超过 1 的永远不能省略圆括号。
(3)匿名函数如果只有一行,则大括号也可以省略
(4)如果参数只出现一次,则参数省略且后面参数可以用_代替
//匿名函数 :没有名字的函数,通过lambda表达式实现 (参数)=>函数体 //f9((s:String)=>println(s)) //(1)参数的类型可以省略,会根据形参进行自动的推导 //f9((s)=>println(s)) //(2)类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参数超过1的永远不能省略圆括号。 //f9(s =>println(s)) //(3)匿名函数如果只有一行,则大括号也可以省略 //f9(s =>println(s)) //(4)如果参数只出现一次,则参数省略且后面参数可以用_代替 //f9(println(_)) // (5) 如果可以推断出,println是一个函数体,而不是调用语句,那么(_)可以省 // f9(println) //反推导 f9((s:String)=>println(s))
def f11(fun:(Int,Int)=>Int):Int=
fun(1,2)
//println(f11((x:Int,y:Int)=>x + y))
//println(f11((x,y)=>x + y))
println(f11(_ + _))
以上是关于Scala 匿名函数的主要内容,如果未能解决你的问题,请参考以下文章