Cei*_*ish 0 scala partialfunction
我正在尝试设计一些继承部分函数的类,但我似乎无法正确地获得语法.我的超类看起来像这样:
abstract class Controller {
val react:PartialFunction[Event,Unit]
}
Run Code Online (Sandbox Code Playgroud)
子类看起来像:
class BoardRendererController(val renderer:BoardRenderer, val board:Board) extends Controller {
override val react {
case PieceMovedEvent(piece, origin, destination) => println("Moving now")
}
}
Run Code Online (Sandbox Code Playgroud)
但是这个错误无法编译
[ERROR] /workspace/pacman/src/main/scala/net/ceilingfish/pacman/BoardRendererController.scala:14: error: '=' expected but '{' found.
[INFO] override val react {
[INFO] ^
[ERROR] /workspace/pacman/src/main/scala/net/ceilingfish/pacman/BoardRendererController.scala:17: error: illegal start of simple expression
[INFO] }
[INFO] ^
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多变种,任何人都知道正确的语法是什么?
除了abhin4v的简洁建议之外,您仍然需要在定义中提供类型注释,因此我建议您对基类添加:
type PFEU = PartialFunction[Event, Unit]
Run Code Online (Sandbox Code Playgroud)
然后你的子类看起来像这样:
class BoardRendererController(val renderer:BoardRenderer, val board:Board)
extends Controller
{
override val react: PFEU = {
case PieceMovedEvent(piece, origin, destination) => println("Moving now")
}
}
Run Code Online (Sandbox Code Playgroud)