Koleksi Scala - Metode Pindai

scan () metode adalah anggota dari sifat TraversableLike, ini mirip dengan metode lipat tetapi digunakan untuk menerapkan operasi pada setiap elemen koleksi dan mengembalikan koleksi.

Sintaksis

Berikut ini adalah sintaks metode lipat.

def scan[B >: A, That](z: B)(op: (B, B) ? B)(implicit cbf: CanBuildFrom[Repr, B, That]): That

Di sini, metode scan mengambil fungsi operator biner asosiatif sebagai parameter. Metode ini mengembalikan koleksi yang diperbarui sebagai hasil. Ini menganggap masukan pertama sebagai nilai awal dan masukan kedua sebagai fungsi.

Pemakaian

Di bawah ini adalah contoh program untuk menunjukkan bagaimana menggunakan metode pemindaian -

Contoh

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)      
   }
}

Di sini kita telah melewatkan 0 sebagai nilai awal untuk memindai fungsi dan kemudian semua nilai ditambahkan. Simpan program di atas dalamDemo.scala. Perintah berikut digunakan untuk mengkompilasi dan menjalankan program ini.

Perintah

\>scalac Demo.scala
\>scala Demo

Keluaran

List(0, 1, 3, 6, 10)