reactions.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 30 行

SCALA
30
字号
package scala.swingimport event.Eventclass Reactions {  type Reaction = PartialFunction[Event, unit]  private var parts: List[Reaction] = List()  def += (r: Reaction) = { parts = r :: parts }  def -= (r: Reaction) = {     def withoutR(xs: List[Reaction]): List[Reaction] =       if (xs.isEmpty) xs      else if (xs.head == r) xs.tail      else xs.head :: withoutR(xs.tail)    parts = withoutR(parts)  }  def send(e: Event) = {    def sendTo(ps: List[Reaction]): Unit = ps match {      case Nil =>      case p :: ps =>        if (p isDefinedAt e) p(e)        /*else*/ sendTo(ps)    }    sendTo(parts)  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?