我有这样的代码:
var index = 0
var array: Array[String] = //initialized
functionOne(array(index))
index = index + 1
functionTwo(array(index))
index = index + 1
这个想法很明确 - 每次从数组中获取元素时,我都需要增加索引。使用java可以简单地编写index++
,而不是到处复制index = index+ 1
。是否有一个模式/API 可以用 scala 重构上面的代码?
最佳答案
如果用例是为数组的每个元素调用不同的函数,那么更简洁的解决方案是
var array: Array[String] = ??? // intialized
// as many functions as needed
val functions = Array(functionOne, functionTwo, functionThree);
(array zip functions) foreach { case (el, f) => f(el) }
这是一个更一般想法的示例,如果您没有对索引值执行任何操作,只是使用它来访问集合,那么可能有一种方法不需要索引全部。
关于java - 如何重构scala中的增量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774012/