我看到這個代碼是很常見的:自我註釋,爲什麼要用self:=>而不是val?
trait A { this: B => ... }
trait A { self: B => ... }
但我想知道,爲什麼不利用這個:
trait A {
val self: B = this
//....
}
它這將是一個無限循環?
UPDATE:
這些是一樣的嗎?
trait A { self => ... }
trait A { val self = this }
請看我的更新。 –
@Alex - [self-type annotation syntax](http://docs.scala-lang.org/tutorials/tour/explicitly-typed-self-references.html)創建'this'的*別名*(即編譯器會用正確的'this'引用來替換'self'),而當你聲明'val self = this'時,你實際上會創建一個額外的字段。 – DaoWen
我知道。我在問這個區別。只有一個領域的開銷? –