Scala fungsi aplikasi parsial
Scala aplikasi parsial dari fungsi adalah ekspresi, Anda tidak memberikan semua parameter yang diperlukan untuk fungsi, hanya perlu menyediakan sebagian, atau tidak memberikan parameter yang diperlukan.
Contoh-contoh berikut, kita mencetak informasi 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) } }
Pelaksanaan kode di atas, output adalah:
$ 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
Misalnya, log () metode mengambil dua parameter: tanggal dan pesan. Kami disebut tiga kali selama eksekusi program, nilai-nilai parameter adalah tanggal yang sama, pesan yang berbeda.
Kita dapat menggunakan metode di atas aplikasi parsial optimasi fungsi, terikat parameter kencan pertama, parameter kedua untuk menggunakan garis bawah (_) untuk menggantikan daftar argumen yang hilang, dan indeks fungsi baru dari nilai yang diberikan untuk variabel. Contoh yang diamandemen di atas sebagai berikut:
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) } }
Pelaksanaan kode di atas, output adalah:
$ 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