Scala Funciones Anónimas

Scala 函数Scala Funciones

La sintaxis para definir funciones anónimas en Scala es muy simple: a la izquierda de la flecha está la lista de parámetros, y a la derecha está el cuerpo de la función.

Después de usar funciones anónimas, nuestro código se vuelve más conciso.

La siguiente expresión define una función anónima que acepta un parámetro de entrada de tipo Int:

var inc = (x:Int) => x+1

La función anónima definida anteriormente es en realidad una abreviatura de la siguiente escritura:

def add2 = new Function1[Int,Int]{  
    def apply(x:Int):Int = x+1;  
} 

El 'inc' del ejemplo anterior ahora puede usarse como una función, de la siguiente manera:

var x = inc(7)-1

De igual manera, podemos definir múltiples parámetros en funciones anónimas:

var mul = (x: Int, y: Int) => x*y

El 'mul' ahora puede usarse como una función, de la siguiente manera:

println(mul(3, 4))

También podemos no establecer parámetros para la función anónima, como se muestra a continuación:

var userDir = () => { System.getProperty("user.dir") }

El 'userDir' ahora puede usarse como una función, de la siguiente manera:

println( userDir() )

Ejemplo

Ejemplo

object Demo {
   def main(args: Array[String]) {
      println( "multiplier(1) value = " +  multiplier(1) )
      println( "multiplier(2) value = " +  multiplier(2) )
   }
   var factor = 3
   val multiplier = (i:Int) => i * factor
}

Guarde el código anterior en el archivo Demo.scala y ejecute el siguiente comando:

$ scalac Demo.scala
$ scala Demo

El resultado de salida es:

multiplier(1) value = 3
multiplier(2) value = 6

Scala 函数Scala Funciones

Otras extensiones