集合上的滑动方法以X[Iterable[A]]
的形式返回给定大小的滑动窗口,其中X为集合的类型,A为元素类型。通常,我需要两个或三个元素,并且更喜欢命名它们。 sliding(2)
的一种丑陋的解决方法如下:
points.sliding(2).foreach{ twoPoints =>
val (p1,p2) = (twoPoints.head,twoPoints.last)
//do something
}
这很烂,并且仅适用于两个元素。另请注意
(a,b) = (twoPoints(0),twoPoints(1))
不起作用。
最佳答案
上周,我在this回答中做了很多事情。
points.sliding(2).foreach { case X(p1, p2) => ... }
如果
points
是Array
,则将X
替换为Array
。如果它是List
,请将X
替换为List
,依此类推。请注意,您正在执行模式匹配,因此您需要使用
{}
而不是()
作为参数。关于scala - 将Iterable.sliding输出为元组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4717742/