gpt4 book ai didi

具有发布者和订阅者特征的 Scala 类

转载 作者:行者123 更新时间:2023-12-02 07:47:46 25 4
gpt4 key购买 nike

使用 import scala.collection.mutable.{Publisher, Subscriber} 我正在尝试实现一个订阅事件和发布事件的类。例如,此类可能会接收原始数据,对其进行操作,然后将结果发布给其他订阅者。

扩展订阅者的基本类:

scala> class Sub[Evt, Pub]() extends Subscriber[Evt, Pub]{
def notify(pub: Pub, evt: Evt){
}
}
defined class Sub

扩展 Publisher 的基本类:

scala> class Pub[Evt]() extends Publisher[Evt]{}
defined class Pub

现在,我想将两者结合起来:

scala> class PubSub[Evt, Pub] extends Subscriber[Evt, Pub] with Publisher[Evt]{
def notify(pub: Pub, evt: Evt){
}
}
<console>:26: error: class PubSub needs to be abstract, since method notify in
trait Subscriber of type (pub: Pub,event: Evt)Unit is not defined class
PubSub[Evt,Pub] extends Subscriber[Evt, Pub] with Publisher[Evt]{

通知方法已定义,因此错误可能具有误导性。

我不确定如何为 PubSub 类定义类型参数,这可能是问题的一部分。

最佳答案

问题是 Publisher 类定义了一个 Pub 类型,它隐藏了通用 Pub 参数。

只需将其重命名为其他名称即可:

class PubSub[Evt, Pub2] extends Subscriber[Evt, Pub2] with Publisher[Evt]{
def notify(pub: Pub2, evt: Evt){
}
}

关于具有发布者和订阅者特征的 Scala 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com