Коллекции Scala - Метод сканирования

Метод scan () является членом трейта TraversableLike, он похож на метод fold, но используется для применения операции к каждому элементу коллекции и возврата коллекции.

Синтаксис

Ниже приводится синтаксис метода сворачивания.

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)