【发布时间】:2016-01-31 22:59:37
【问题描述】:
在 Coursera 课程“反应式编程原理”中,Odersky 介绍了这个 sn-p:
trait Generator[+T] {
self => // an alias for ”this”.
def generate: T
def map[S](f: T => S): Generator[S] = new Generator[S] {
def generate = f(self.generate)
}
def flatMap[S](f: T => Generator[S]): Generator[S] = new Generator[S] {
def generate = f(self.generate).generate
}
}
不过,我不太清楚 self => 的东西。为什么它有效,我为什么不直接做val self = this?
【问题讨论】: