Aku sudah mencoba:
class Foo(bar: Int)
vs:
class Foo(private val bar: Int)
dan mereka tampaknya berperilaku sama meskipun saya tidak dapat menemukan di mana pun yang mengatakan bahwa (bar:
Int)
memperluas (private val bar: Int)
pertanyaan saya adalah, apakah ini identik / mirip?
Di samping catatan, saya telah mencoba untuk menggunakan -Xprint:typer
potongan kode ini dan mereka menghasilkan kode yang sama kecuali untuk baris tambahan di yang kedua. Bagaimana saya membaca baris ekstra itu?
..
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>();
()
}
}
..
val
.