在Scala中,
匿名函数
也称为函数文字。不包含名称的函数称为匿名函数。匿名函数提供了轻量级的函数定义。当我们要创建一个内联函数时, 这很有用。
语法如下:
(z:Int, y:Int)=>
z*y
Or
(_:Int)*(_Int)
- 在上面的第一种语法中, => 被称为转换器。转换器用于使用右侧的表达式将符号左侧的参数列表转换为新结果。
- 在以上第二种语法中, _字符称为通配符, 它??是表示在匿名函数中仅出现一次的参数的简写方式。
在对象中实例化函数文字时, 称为函数值。换句话说, 当将匿名函数分配给变量时, 我们可以像调用函数一样调用该变量。我们可以在匿名函数中定义多个参数。
范例1:
// Scala program to illustrate the anonymous method
object Main
{
def main(args : Array[String])
{// Creating anonymous functions
// with multiple parameters Assign
// anonymous functions to variables
var myfc 1 = (str 1 : String, str 2 : String) =>
str 1 + str 2// An anonymous function is created
// using _ wildcard instead of
// variable name because str1 and
// str2 variable appear only once
var myfc 2 = ( _: String) + ( _: String)// Here, the variable invoke like a function call
println(myfc 1 ( "Geeks" , "12Geeks" ))
println(myfc 2 ( "Geeks" , "forGeeks" ))
}
}
输出如下:
Geeks12Geeks
lsbin
没有参数的匿名函数
我们可以定义不带参数的匿名函数。在Scala中, 我们可以将匿名函数作为参数传递给另一个函数。
范例2:
// Scala program to illustrate anonymous method
object Main
{
def main(args : Array[String])
{// Creating anonymous functions
// without parameter
var myfun 1 = () =>
{ "Welcome to lsbin...!!" }
println(myfun 1 ())// A function which contain anonymous
// function as a parameter
def myfunction(fun : (String, String) =>
String) =
{
fun( "Dog" , "Cat" )
}// Explicit type declaration of anonymous
// function in another function
val f 1 = myfunction((str 1 : String, str 2 : String) =>
str 1 + str 2 )// Shorthand declaration using wildcard
val f 2 = myfunction( _ + _ )
println(f 1 )
println(f 2 )
}
}
【Scala中的匿名函数详细介绍】输出如下:
Welcome to lsbin...!!
DogCat
DogCat
推荐阅读
- 算法题(选择k个数组元素,使最大值和最小值之差最小)
- C#逐字字符串字面量– @用法介绍
- PHP gmp_div_qr()函数用法详细介绍
- 端口地址转换(PAT)映射到专用IP详细介绍
- Salesforce面试经验|在校园
- 操作系统常见问题集锦和答案|S10
- 操作系统常见问题和答案合集|S11
- 操作系统常见问题和考试问题|S12
- 操作系统相关考试问题|S13