ฉันสังเกตเห็นว่าคอมไพเลอร์ไม่ยอมให้ฉันแทนที่คุณสมบัติที่เก็บไว้ด้วยค่าอื่นที่เก็บไว้ (ซึ่งดูแปลก):
class Jedi {
var lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor = "Red" // Cannot override with a stored property lightSaberColor
}
อย่างไรก็ตามฉันได้รับอนุญาตให้ทำสิ่งนี้กับคุณสมบัติที่คำนวณได้:
class Jedi {
let lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor : String{return "Red"}
}
เหตุใดฉันจึงไม่ได้รับอนุญาตให้ให้ค่าอื่น
เหตุใดการลบล้างทรัพย์สินที่เก็บไว้จึงเป็นสิ่งที่น่ารังเกียจและทำด้วยโคเชอร์ที่คำนวณได้ พวกเขาคิดอะไรอยู่?