ฉันมีคลาสที่มี getter/setter:
class Person {
private var _age = 0
//getter
def age = _age
//setter
def age_=(value: Int): Unit = _age = value
}
เรารู้ว่าเราสามารถเรียกใช้เมธอด setter ได้ดังนี้:
val p = new Person()
p.age= (2)
p age= 11
p.age= 8-4
สิ่งที่น่าสนใจในกรณีนี้คือ: ขีดล่าง (_
) ใน def age_=
สามารถลบออกได้เมื่อมีการเรียกใช้เมธอด
คำถามของฉันคือขีดเส้นใต้ที่ใช้ในกรณีนี้คืออะไร?
มีคนบอกฉันว่ามันใช้เพื่อแยกอักขระที่ไม่ใช่ตัวอักษรในตัวระบุ ดังนั้นฉันจึงลองสิ่งนี้:
var x_= = 20
x_= = 10
x= = 5 // I got error here
เหตุใดฉันจึงไม่สามารถลบขีดล่างในกรณีนี้ได้
นอกจากนี้ หากฉันพยายามใช้ขีดล่างมากกว่าหนึ่งครั้ง:
val x_=_x = 1
ฉันได้รับข้อผิดพลาดในการคอมไพล์ด้วย
มีกฎเกณฑ์เกี่ยวกับการใช้ขีดล่างหรือไม่ และการใช้ขีดล่างนี้เรียกว่าอะไร?