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