ฉันได้ลองแล้ว:
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
"สาธารณะ"