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