我有一个元组列表,我想总结哪些元素:
val t = Seq(1,2,3,4,5).map(el => (el,1))
t: Seq[(Int, Int)] = List((1,1), (2,1), (3,1), (4,1), (5,1))
t.foldLeft(0,0){ case ((a,b),(c,d)) => (a+b,c+d)}
res3: (Int, Int) = (14,6)
Run Code Online (Sandbox Code Playgroud)
答案(14,6)确实是出乎意料的(预期是(15,5))。
更令我困惑的是:
t.foldLeft(0,1){ case ((a,b),(c,d)) => (a+b,c+d)}
res3: (Int, Int) = (15,6)
Run Code Online (Sandbox Code Playgroud)
我的问题是参数foldLeft(x,y)对应于什么(它们是第一和第二折的初始参数?),以及如何在元组的第一和第二元素上获得所需的总和。