下面的代码片段取自 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)
Run Code Online (Sandbox Code Playgroud)
2.如何使用map高阶函数重写相同的代码?
因为sliding()返回一个Iterator,而不是一个List。
numbers.sliding(2).map{case Seq(x,y) => action(x,y)}.toList
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |