Я намагався:
class Foo(bar: Int)
vs:
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>();
()
}
}
..
val
.