Latest web development tutorials

Scala częściowe stosowanie funkcji

funkcja Scala funkcja Scala

Scala częściowe zastosowanie funkcji jest wyrażeniem, nie zapewniają wszystkich wymaganych parametrów funkcji, tylko trzeba dostarczyć w części, lub nie dostarczenia wymaganych parametrów.

Poniższe przykłady, możemy wydrukować informacje dziennika:

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

Realizacja powyższego kodu, wyjście jest:

$ 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

Przykład, log () Metoda przyjmuje dwa parametry: datę i wiadomość. Zadzwoniliśmy trzy razy podczas wykonywania programu, wartości parametrów są tego samego dnia, inny komunikat.

Możemy użyć powyższej metody częściowego stosowania optymalizacji funkcji, związany parametr pierwszej randce drugi parametr do używania znaku podkreślenia (_), aby zastąpić listę argumentów brakuje, a indeks nowych funkcji wartości przypisanej do zmiennej. Przykłady wyżej wprowadza się następujące zmiany:

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

Realizacja powyższego kodu, wyjście jest:

$ 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

funkcja Scala funkcja Scala