Ich habe es versucht:
class Foo(bar: Int)
vs:
class Foo(private val bar: Int)
und sie scheinen sich gleich zu verhalten, obwohl ich nirgendwo etwas finden konnte, das sich (bar:
Int)erweitert, (private val bar: Int)so dass meine Frage lautet: Sind diese identisch / ähnlich?
Nebenbei bemerkt, ich habe versucht, -Xprint:typerdiese Codeteile zu verwenden, und sie erzeugen denselben Code, mit Ausnahme einer zusätzlichen Zeile in der zweiten. Wie lese ich diese zusätzliche Zeile?
..
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.