📅  最后修改于: 2020-11-02 04:36:32             🧑  作者: Mango
scan()方法是TraversableLike特质的成员,它类似于fold方法,但用于对collection的每个元素应用操作并返回collection。
以下是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)