Notei que o compilador não me permite substituir uma propriedade armazenada por outro valor armazenado (o que parece estranho):
class Jedi {
var lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor = "Red" // Cannot override with a stored property lightSaberColor
}
No entanto, estou autorizado a fazer isso com uma propriedade computada:
class Jedi {
let lightSaberColor = "Blue"
}
class Sith: Jedi {
override var lightSaberColor : String{return "Red"}
}
Por que não estou autorizado a atribuir outro valor?
Por que substituir uma propriedade armazenada é uma abominação e fazê-lo com um kosher calculado? O que eles estão pensando?