Latest web development tutorials

application de fonction partielle Scala

fonction Scala fonction Scala

application partielle Scala de fonction est une expression, vous ne fournissez pas tous les paramètres nécessaires de la fonction, il suffit de fournir en partie, ou ne fournissent pas les paramètres requis.

Les exemples suivants, nous imprimer les informations du journal:

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

Mise en œuvre du code ci-dessus, la sortie est:

$ 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

Exemple, méthode log () prend deux paramètres: la date et le message. Nous avons appelé trois fois au cours de l'exécution du programme, les valeurs des paramètres sont la même date, un message différent.

Nous pouvons utiliser la méthode ci-dessus de l'application partielle de l'optimisation de la fonction, premier paramètre de date limite, le second paramètre à utiliser un underscore (_) pour remplacer la liste des arguments manquants, et l'indice de la nouvelle fonction de la valeur attribuée à la variable. Des exemples de la version modifiée ci-dessus comme suit:

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

Mise en œuvre du code ci-dessus, la sortie est:

$ 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

fonction Scala fonction Scala