Scala Collections - วิธีพับ
fold () method เป็นสมาชิกของ TraversableOnce trait ใช้เพื่อยุบองค์ประกอบของคอลเลกชัน
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์ของวิธีการพับ
def fold[A1 >: A](z: A1)(op: (A1, A1) ? A1): A1
วิธีการพับใช้ฟังก์ชันตัวดำเนินการไบนารีที่เชื่อมโยงเป็นพารามิเตอร์ วิธีนี้จะส่งคืนผลลัพธ์เป็นค่า ถือว่าอินพุตแรกเป็นค่าเริ่มต้นและอินพุตที่สองเป็นฟังก์ชัน (ซึ่งรับค่าสะสมและรายการปัจจุบันเป็นอินพุต)
การใช้งาน
ด้านล่างนี้เป็นตัวอย่างโปรแกรมแสดงวิธีใช้วิธีพับ -
ตัวอย่าง
object Demo {
def main(args: Array[String]) = {
val list = List(1, 2, 3 ,4)
//apply operation to get sum of all elements of the list
val result = list.fold(0)(_ + _)
//print result
println(result)
}
}
ที่นี่เราได้ส่ง 0 เป็นค่าเริ่มต้นไปยังฟังก์ชันพับจากนั้นค่าทั้งหมดจะถูกเพิ่ม บันทึกโปรแกรมข้างต้นในDemo.scala. คำสั่งต่อไปนี้ใช้เพื่อคอมไพล์และรันโปรแกรมนี้
คำสั่ง
\>scalac Demo.scala
\>scala Demo
เอาต์พุต
10