举例:
- 对于列表 = (1,2,3,4,5,6,7,8,9)
- 我想根据以下条件对该列表的元素进行分组:
- 如果 x 能被 4 整除,则将其与相邻元素相加
- 预期结果 = (1, 2, 12, 6, 23)
在 java 中,我会使用 for 循环遍历集合:
List<Integer> out = new ArrayList<Integer>();
for (int i = 0; i < in.size() - 2; i++)
{
if (in.get(i+1) % 4 == 0) {
out.add(in.get(i) + in.get(i+1) + in.get(i+2)));
i = i + 2;
}
else {
out.add(in.get(i))
}
}
不幸的是,在 Scala 中,我不能这样做i = i + 2
,因为循环索引是不可变的。我是否必须while
为此目的使用循环?或者也许是一些聪明的功能方式?