用户工具


装饰器
object main {
  def main(args: Array[String]) {
    val act1 = new RealAction with TBeforeAfter
    act1.doAction
  }
}


trait TAction {
  def doAction
}

trait TBeforeAfter extends TAction {
  abstract override def doAction {
    println("---begin----") //doAction的前置处理
    super.doAction // 调用原来的处理
    println("----end----") //doAction的后置处理
  }
}

class RealAction extends TAction {

  def doAction = { println("** real action done!! **") }

}
结果
---begin----
** real action done!! **
----end----




样例类
偏函数
逆变报错问题
react
科利华和隐世参数隐式函数
定界和延续