En Scala, una función anónima también se conoce como función literal. Una función que no contiene un nombre se conoce como función anónima. Una función anónima proporciona una definición de función ligera. Es útil cuando queremos crear una función en línea.
Sintaxis:
(z:Int, y:Int)=> z*y Or (_:Int)*(_Int)
- En la primera sintaxis anterior, => se conoce como transformador. El transformador se usa para transformar la lista de parámetros del lado izquierdo del símbolo en un nuevo resultado usando la expresión presente en el lado derecho.
- En la segunda sintaxis anterior, el carácter _ se conoce como comodín y es una forma abreviada de representar un parámetro que aparece solo una vez en la función anónima.
Cuando un literal de función se instancia en un objeto, se conoce como valor de función. O, en otras palabras, cuando se asigna una función anónima a una variable, podemos invocar esa variable como una llamada de función. Podemos definir múltiples argumentos en la función anónima.
Ejemplo 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 myfc1 = (str1:String, str2:String) => str1 + str2 // An anonymous function is created // using _ wildcard instead of // variable name because str1 and // str2 variable appear only once var myfc2 = (_:String) + (_:String) // Here, the variable invoke like a function call println(myfc1("Geeks", "12Geeks")) println(myfc2("Geeks", "forGeeks")) } }
Producción:
Geeks12Geeks GeeksforGeeks
Se nos permite definir una función anónima sin parámetros. En Scala, se nos permite pasar una función anónima como parámetro a otra función.
Ejemplo 2:
// Scala program to illustrate anonymous method object Main { def main(args: Array[String]) { // Creating anonymous functions // without parameter var myfun1 = () => {"Welcome to GeeksforGeeks...!!"} println(myfun1()) // 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 f1 = myfunction((str1: String, str2: String) => str1 + str2) // Shorthand declaration using wildcard val f2 = myfunction(_ + _) println(f1) println(f2) } }
Producción:
Welcome to GeeksforGeeks...!! DogCat DogCat
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA