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 方法将关联二元运算符函数作为参数。此方法返回更新后的集合作为结果。它将第一个输入视为初始值,将第二个输入视为函数。

用法

以下是一个示例程序,演示如何使用 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)
广告