我创建了一个扩展到Counter的类,它跟踪加法和减法。我试图调用xs然后返回数字上升或下降的时间总和由xs实例调用,其编译但失败。
class Counter {
private var n = 0
def increment () = { n = n + 1 }
def decrement () = { n = n - 1 }
def get () : Int = n
}
def x (xs : Counter => Unit) : Int = {
class foo extends Counter {
var count = 0
def incrementAndGet = {count += 1; count}
def decrementAndGet = {count -= 1; count}
}
val counter1 = new foo
xs(counter1)
counter1.incrementAndGet
counter1.decrementAndGet
}
谢谢大家,我实际上能够通过它。我需要创建另一个变量,可以跟踪我的增量和减量,然后在def inc和def dec中,我会添加到count或者减去数量:)
答案 0 :(得分:0)
我建议你看一下Java设计模式&最好的做法。你的foo类并没有真正扩展计数器,因为它不会遮挡或覆盖任何东西。此外,你应该使用单身(对象计数器......)来跟踪你的添加物和substractions。祝你好运。