Colecciones Scala - Método de escaneo

El método scan () es miembro del rasgo TraversableLike, es similar al método fold pero se usa para aplicar una operación en cada elemento de la colección y devolver una colección.

Sintaxis

La siguiente es la sintaxis del método fold.

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

Aquí, el método de exploración toma la función de operador binario asociativo como parámetro. Este método devuelve la colección actualizada como resultado. Considera la primera entrada como valor inicial y la segunda entrada como función.

Uso

A continuación se muestra un programa de ejemplo que muestra cómo usar el método de escaneo:

Ejemplo

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

Aquí hemos pasado 0 como valor inicial a la función de escaneo y luego se agregan todos los valores. Guarde el programa anterior enDemo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.

Mando

\>scalac Demo.scala
\>scala Demo

Salida

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