在我的基础课我
trait EventReceiver {
def onStart(start: Start) {
}
}
Run Code Online (Sandbox Code Playgroud)
我定义
def benchmark = new EventReceiver {}
Run Code Online (Sandbox Code Playgroud)
因为我需要在基类中进行一些处理.在我的客户使用的子类中,他们执行类似于以下操作的操作
override def benchmark = new EventReceiver {
override def onStart(start: Start) {
println("benchmark start")
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这有点笨拙
override def benchmark = new EventReceiver { ...
Run Code Online (Sandbox Code Playgroud)
有没有更好的表达方式?理想情况下它会是这样的
singleword {
override def onStart(start: Start) {
println("benchmark start")
}
}
Run Code Online (Sandbox Code Playgroud)
例如,
def singleword(fOnStart: Start => Unit) =
new EventReceiver {
override def onStart(start: Start) { fOnStart(start) }
}
Run Code Online (Sandbox Code Playgroud)
然后,
singleword { start =>
println("benchmark started")
}
Run Code Online (Sandbox Code Playgroud)