scala 系列 ---- scan,scanLeft,scanRight的使用详解用法及代码示例
scan[B >: A, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[List[A], B, That]): That
由一个初始值开始,从左向右,进行积累的op操作
scanLeft,scanRight
scanLeft: scanLeft[B, That](z: B)(op: (B, A) ⇒ B)(implicit bf: CanBuildFrom[List[A], B, That]): That
scanRight: scanRight[B, That](z: B)(op: (A, B) ⇒ B)(implicit bf: CanBuildFrom[List[A], B, That]): That
scanLeft: 从左向右进行scan函数的操作,scanRight:从右向左进行scan函数的操作
var scanVector = (1 to 10).scan(0)(_ + _)
println(scanVector.getClass)
println(scanVector)
println("-------------------------------------------------")
var slVector = (1 to 10).scanLeft(0)(_ + _)
println(slVector.getClass)
println(slVector)
println("-------------------------------------------------")
var srVector = (1 to 10).scanRight(0)(_ + _)
println(srVector.getClass)
println(srVector)
输出:
class scala.collection.immutable.Vector
Vector(0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55)
-------------------------------------------------
class scala.collection.immutable.Vector
Vector(0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55)
-------------------------------------------------
class scala.collection.immutable.Vector
Vector(55, 54, 52, 49, 45, 40, 34, 27, 19, 10, 0)
还没有评论,来说两句吧...