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)
廣告
© . All rights reserved.