Funciones anónimas en Scala

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.
Funciones anónimas con parámetros

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

 

Funciones anónimas sin parámetros

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *