ใน Scala ฉันเห็นคุณสมบัติดังกล่าวเป็นตัวแปรออบเจ็กต์ส่วนตัว จากพื้นหลัง Java ที่ไม่สมบูรณ์ของฉันฉันได้เรียนรู้ที่จะปิดทุกอย่าง (ทำให้เป็นส่วนตัว) และเปิด (ให้ตัวเข้าถึง) หากจำเป็น Scala แนะนำตัวแก้ไขการเข้าถึงที่เข้มงวดยิ่งขึ้น ฉันควรใช้เป็นค่าเริ่มต้นหรือไม่? หรือฉันควรใช้มันเฉพาะในบางกรณีที่ฉันจำเป็นต้อง จำกัด การเปลี่ยนแปลงค่าฟิลด์อย่างชัดเจนแม้กระทั่งสำหรับออบเจ็กต์ในคลาสเดียวกัน ฉันควรเลือกอย่างไรระหว่าง
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
อย่างที่สองเข้มงวดกว่าและฉันชอบ แต่ฉันควรใช้มันเสมอหรือถ้าฉันมีเหตุผลที่ชัดเจน
แก้ไข: อย่างที่ฉันเห็นนี่ private[this]
เป็นเพียงตัวพิมพ์เล็กบางส่วนและthis
ฉันสามารถใช้ตัวดัดแปลงอื่น ๆ แทน: "package, class หรือ singleton object" ได้ ผมจะปล่อยไว้เป็นกรณีพิเศษ