Latest web development tutorials

aplicación de función parcial Scala

función Scala función Scala

Scala aplicación parcial de la función es una expresión, no proporciona todos los parámetros necesarios de la función, sólo tendrá que proporcionar en parte, o no proporcionan los parámetros necesarios.

Los siguientes ejemplos, que imprimen la información de registro:

import java.util.Date

object Test {
   def main(args: Array[String]) {
      val date = new Date
      log(date, "message1" )
      Thread.sleep(1000)
      log(date, "message2" )
      Thread.sleep(1000)
      log(date, "message3" )
   }

   def log(date: Date, message: String)  = {
     println(date + "----" + message)
   }
}

Aplicación del código anterior, la salida es:

$ scalac Test.scala
$ scala Test
Mon Dec 02 12:52:41 CST 2013----message1
Mon Dec 02 12:52:41 CST 2013----message2
Mon Dec 02 12:52:41 CST 2013----message3

Ejemplo, log () toma dos parámetros: la fecha y el mensaje. Llamamos tres veces durante la ejecución del programa, los valores de los parámetros son la misma fecha, un mensaje diferente.

Podemos utilizar el método anterior de la aplicación parcial de la optimización de la función, primer parámetro de fecha límite, el segundo parámetro de utilizar un guión bajo (_) para reemplazar la lista de argumentos que faltan, y el índice de la nueva función del valor asignado a la variable. Los ejemplos de la modificación anterior de la siguiente manera:

import java.util.Date

object Test {
   def main(args: Array[String]) {
      val date = new Date
      val logWithDateBound = log(date, _ : String)

      logWithDateBound("message1" )
      Thread.sleep(1000)
      logWithDateBound("message2" )
      Thread.sleep(1000)
      logWithDateBound("message3" )
   }

   def log(date: Date, message: String)  = {
     println(date + "----" + message)
   }
}

Aplicación del código anterior, la salida es:

$ scalac Test.scala
$ scala Test
Mon Dec 02 12:53:56 CST 2013----message1
Mon Dec 02 12:53:56 CST 2013----message2
Mon Dec 02 12:53:56 CST 2013----message3

función Scala función Scala