The final difference between classes and structs is the way they deal with constants. If you have a constant struct with a variable property, that property can’t be changed because the struct itself is constant.
However, if you have a constant class with a variable property, that property can be changed. Because of this, classes don’t need the mutating
keyword with methods that change properties; that’s only needed with structs.
This difference means you can change any variable property on a class even when the class is created as a constant – this is perfectly valid code:
class Singer {
var name = "Taylor Swift"
}
let taylor = Singer()
taylor.name = "Ed Sheeran"
print(taylor.name)
If you want to stop that from happening you need to make the property constant:
class Singer {
let name = "Taylor Swift"
}
SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until October 1st.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.