मैं कोशिश कर रहा है:
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>();
()
}
}
..
val
।