سؤال

أحاول تصميم بعض الفصول الدراسية التي ترث وظيفة جزئية ، لكن لا يبدو أنني قادر على الحصول على بناء الجملة بشكل صحيح. يبدو أن الطبقة الفائقة الخاصة بي:

abstract class Controller {

    val react:PartialFunction[Event,Unit]

}

والفئة الفرعية تبدو مثل:

class BoardRendererController(val renderer:BoardRenderer, val board:Board) extends Controller {

    override val react {
        case PieceMovedEvent(piece, origin, destination) => println("Moving now")
    }
}

لكن هذا فشل في التجميع مع هذا الخطأ

[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] ^

لقد جربت الكثير من الاختلافات في هذا ، أي شخص يعرف ما هو بناء الجملة الصحيح؟

هل كانت مفيدة؟

المحلول

بالإضافة إلى اقتراح terse من ABHIN4V ، لا يزال يتعين عليك تقديم تعليق توضيحي في التعريف ، لذلك أوصي بهذه الإضافة إلى فصلك الأساسي:

type PFEU = PartialFunction[Event, Unit]

ثم ستبدو فئتك الفرعية هكذا:

class BoardRendererController(val renderer:BoardRenderer, val board:Board)
extends Controller
{
    override val react: PFEU = {
        case PieceMovedEvent(piece, origin, destination) => println("Moving now")
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top