标量成对遍历列表元素

时间:2018-09-19 05:50:03

标签: scala

以下代码摘自GITHub Repo。在这段代码中,我们从下两个数字求和。我的问题是在doAction函数中花括号的末尾必须具有toList。为什么我们需要这个。如果我删除toList,那么会导致问题。

def doAction(numbers:List[Int],action: (Int,Int) => Int):List[Int] =
{
  for(pair <- numbers.sliding(2)) yield {
    action(pair(0),pair(1))
  }
}.**toList**

var res = doAction(List(1,2,3,4,5,6,7,8),(a,b)=> a+b)

2。如何使用地图高阶函数重写相同的代码?

1 个答案:

答案 0 :(得分:3)

  1. 因为sliding()返回一个Iterator,而不是List

  2. numbers.sliding(2).map{case Seq(x,y) => action(x,y)}.toList