Scala易碎功能

时间:2016-07-23 18:06:19

标签: scala

我有一个像这样的函数:def process(update:(Any) => Any, break:terminate)

班级terminate

class terminate()
{
  private var terminate = false

  def apply() = terminate = true

  def break() = terminate
}

函数update引用了对象break,因此它可以调用同一对象函数break()得到的process方法。

函数process执行一些繁重的昂贵计算,同时调用update()并获得一些进度更新和中间结果。

由于执行process函数的时间可能太长,update函数可能会使用terminate类中断整个过程。

我应该如何退出process()(检查其中的if(break.break()))以保持最佳性能?抛出异常的意思可能不是最好的选择。在if内进行许多process()次检查也不好。你觉得怎么样?

这个问题的任何其他解决方案都不会使用单独的终止类来破坏函数调用。

0 个答案:

没有答案