Scala 集合 - scan 方法
scan()方法是TraversableLike特征的成员,它与fold方法类似,但用于对集合的每个元素应用操作并返回集合。
语法
以下是fold方法的语法。
def scan[B >: A, That](z: B)(op: (B, B) ? B)(implicit cbf: CanBuildFrom[Repr, B, That]): That
这里,scan方法以关联二元运算符函数作为参数。 此方法返回更新后的集合作为结果。 它将第一个输入视为初始值,将第二个输入视为函数。
用法
下面是一个示例程序,展示如何使用扫描方法 −
示例
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 作为初始值传递给 scan 函数,然后添加所有值。 将上述程序保存在Demo.scala中。 以下命令用于编译和执行该程序。
命令
\>scalac Demo.scala \>scala Demo
输出
List(0, 1, 3, 6, 10)