集合上的滑动方法以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) => ... }

如果pointsArray,则将X替换为Array。如果它是List,请将X替换为List,依此类推。

请注意,您正在执行模式匹配,因此您需要使用{}而不是()作为参数。

关于scala - 将Iterable.sliding输出为元组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4717742/

10-10 06:45