如果我简单地将其设置为“案例类”,则下面的代码运行得非常好。但是,对于可变对象,我当然不希望这样 - 但是通过将其更改为常规类,它似乎不再理解最后的匿名函数参数。不知道为什么我无法克服这个问题,我尝试了一些变体,但不明白为什么让它成为案例类有效。(scala 2.10.2) - 谢谢
/**
*
* @param target - can be any large target number
* @param perPiece - at what percentage interval is todo called
* @param todo - passed current percentage complete
*/
class ProgressTool(target:Double, perPiece:Double) (todo: (Double)=>Unit) extends Mutable {
private[this] var lastUpdate:Double =0.0
def update(atPos:Double) = {
val step = atPos - lastUpdate
if (step/target >=perPiece) {
lastUpdate += step
todo(lastUpdate)
}
}
}
object TestProgressTool extends App {
val x = new ProgressTool(1000,.01) { x:Double =>
println("Hello "+ x)
}
}
ProgressTool 类中的构造函数 ProgressTool 缺少参数 val x = new ProgressTool(1000,.01) { x:Double => ^