Latest web development tutorials

Scala применение частичной функции

функция Scala функция Scala

Scala частичное применение функции является выражением, вы не предоставите все необходимые параметры функции, только необходимо предоставить частично, либо не обеспечивают необходимые параметры.

Ниже приведены примеры, мы выводим данные журнала:

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

Реализация указанного выше кода, выход:

$ 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

Пример, журнал () метод принимает два параметра: дата и сообщение. Мы звонили три раза во время выполнения программы, значения параметров одни и те же даты, другое сообщение.

Мы можем использовать вышеуказанный метод частичного применения оптимизации функции, связанной параметр первой дате, второй параметр, чтобы использовать подчеркивание (_), чтобы заменить недостающий список аргументов, а индекс новой функции значения, присвоенного переменной. Примеры вышеуказанного изложить в следующей редакции:

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

Реализация указанного выше кода, выход:

$ 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

функция Scala функция Scala