Latest web development tutorials

aplicação de função parcial Scala

função Scala função Scala

Scala aplicação parcial da função é uma expressão, você não fornecer todos os parâmetros necessários da função, só precisa fornecer em parte, ou não fornecer os parâmetros necessários.

Os exemplos a seguir, vamos imprimir as informações de 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)
   }
}

Implementação do código acima, a saída é:

$ 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

Exemplo, log () método tem dois parâmetros: data e mensagem. Nós chamado três vezes durante a execução do programa, os valores dos parâmetros são a mesma data, uma mensagem diferente.

Podemos usar o método acima de aplicação parcial de otimização função, ligada primeiro parâmetro de data, o segundo parâmetro para usar um sublinhado (_) para substituir a lista de argumentos em falta, eo índice da nova função do valor atribuído à variável. Exemplos da redacção acima da seguinte forma:

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

Implementação do código acima, a saída é:

$ 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

função Scala função Scala