приведенный ниже код работает отлично, если я просто делаю его «класс case». Однако я, конечно, не хочу этого для изменяемого объекта, но, изменив его на обычный класс, он больше не понимает параметр анонимной функции в конце. Не уверен, почему я не могу пройти мимо этого, я пробовал несколько вариантов и не могу понять, почему это делает класс case. (2.10.2 Скала) - благодаряПри возникновении проблем с параметром curried
/**
*
* @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 вал х = новый ProgressTool (1000, +0,01) {х: Double => ^
Спасибо, это моя методология здесь? Я имею в виду, не следует ли мне пытаться выставить параметр блока кода в классе - это лучше сделано каким-то другим способом? – LaloInDublin
Нет, это кажется мне неразумным. – Shadowlands