加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用Scala ObservableSet Trait的示例

发布时间:2020-12-16 18:19:28 所属栏目:安全 来源:网络整理
导读:谁能帮我告诉我如何使用 scala的 ObservableSet特性? 非常感谢你提前 解决方法 所有打字信息都让人觉得有点眼花缭乱,但这就是我能够让它发挥作用的方式.我欢迎有关如何使打字更简洁的建议.各种编辑,包括类型别名: import collection.mutable._import colle
谁能帮我告诉我如何使用 scala的 ObservableSet特性?

非常感谢你提前

解决方法

所有打字信息都让人觉得有点眼花缭乱,但这就是我能够让它发挥作用的方式.我欢迎有关如何使打字更简洁的建议.各种编辑,包括类型别名:

import collection.mutable._
import collection.script._

val set = new HashSet[String] with ObservableSet[String] { }

type Msg = Message[String] with Undoable
type Sub = Subscriber[Msg,ObservableSet[String]]

val sub = new Sub() {
  def notify(pub: ObservableSet[String],event: Msg): Unit = {
    println("%s sent %s".format(pub,event))
    event match {
      case r:Remove[_] => println("undo!"); event.undo()
      case _ => 
    }
  }
}

set.subscribe(sub)

set += "foo"
set += "bar"
set -= "bar"

打印:

Set(foo) sent Include(NoLo,foo)
Set(bar,foo) sent Include(NoLo,bar)
Set(foo) sent Remove(NoLo,bar)
undo!
Set(bar,bar)

有趣的是,撤消导致另一条消息被发布……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读