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 匿名函数的主要内容,如果未能解决你的问题,请参考以下文章

Scala中方法内的匿名函数

非你所想Scala@我不是你想的那样的匿名函数

非你所想Scala@我不是你想的那样的匿名函数

每天学一点Scala之 匿名函数

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

scala闭包/匿名函数中的多个返回点