java - 如何重构scala中的增量?

标签 java scala increment

我有这样的代码:

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/

相关文章:

java - 什么是适用于 http 的正确 java 单元测试库?

java - NoSuchMethodError : com. fasterxml.jackson.module.scala.deser.BigDecimalDeserializer

scala - 使用 Akka 在一天中的固定时间安排任务

scala - for-yield-getOrElse 是典型的 Scala 还是有更好的方法?

c++ - 将 for 循环递增 1,然后递增 2

java - 同步 HashMap 访问

java - glReadPixels 返回的数据比预期多

java - 增量运算符

php - 通过增量保护重复文件名

java - 分割后如何从图像中去除小物体