Latest web development tutorials

Scala applicazione funzione parziale

funzione Scala funzione Scala

Scala applicazione parziale della funzione è un'espressione, non si forniscono tutti i parametri richiesti della funzione, solo bisogno di fornire in parte, o non forniscono i parametri richiesti.

Gli esempi che seguono, si stampano le informazioni di log:

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)
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ 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

Esempio, log () metodo accetta due parametri: la data e il messaggio. Abbiamo chiamato tre volte durante l'esecuzione del programma, i valori dei parametri sono la stessa data, un messaggio diverso.

Possiamo usare il metodo precedente di applicazione parziale dell'ottimizzazione funzione, vincolato parametro prima data, il secondo parametro di utilizzare una sottolineatura (_) per sostituire l'elenco argomento mancante, e l'indice della nuova funzione del valore assegnato alla variabile. Esempi della modificata sopra come segue:

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)
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ 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

funzione Scala funzione Scala