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 + -
显示快捷键?