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