我已经试了:
class Foo(bar: Int)
与:
class Foo(private val bar: Int)
尽管我找不到任何可以(bar:
Int)
扩展的地方,但它们的行为似乎相同,(private val bar: Int)
所以我的问题是,这些相同/相似吗?
附带说明一下,我一直在尝试-Xprint:typer
在这些代码片段上使用它们,它们产生相同的代码,除了第二个中的额外行。我如何阅读那条额外的线?
..
class Foo extends scala.AnyRef {
<paramaccessor> private[this] val bar: Int = _;
def <init>(bar: Int): this.Foo = {
Foo.super.<init>();
()
}
}
..
..
class Foo extends scala.AnyRef {
<paramaccessor> private[this] val bar: Int = _;
<stable> <accessor> <paramaccessor> private def bar: Int = Foo.this.bar;
def <init>(bar: Int): this.Foo = {
Foo.super.<init>();
()
}
}
..