Коллекции 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)