我在这里使用Akka Actor 库。 actors库定义了部分功能“receive”,扩展“actor”的actor必须实现该功能以处理各种消息。我正在为我的应用程序创建一个特征层次结构,其中特征“clockActor”扩展了Actor,“MasterClock”和“SubClock”扩展了“clockActor”。我正在寻找将时钟的常用功能添加到“时钟”特征的接收功能中,但是然后如何在主时钟特征和子时钟特征中向接收功能添加额外的功能呢?

简而言之,我需要一种将额外的case语句添加到部分函数的方法。
有想法吗?

最佳答案

正如已经建议的那样,您可以使用PartialFunctions轻松编写orElse

trait ClockActor {

    def commonOp = {
        case ... => ...
    }

}

class MasterClock extends Actor with ClockActor {

    def receive = commonOp orElse masterOp

    def masterOp = {
        case ... =>  ...
    }

}

class SubClock extends Actor with ClockActor {

    def receive = commonOp orElse subOp

    def subOp = {
        case ... =>  ...
    }

}

关于scala - 在Scala中扩展部分实现的局部函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14237405/

10-12 00:41