I'm trying out private(set) in playground.
Say, a person named Slippin Jimmy, his age property shouldn't able to operate outside person class since age variable have a private(set) prefix.
I can't direct assign a value to age property, But I can still operate age like plus 1, minus1, times it, I think this is because there's no new variable to store data, no-matter how I operate age variable, it still hold same value from person class, right?
So what's different between + 1, - 1, * 1 and = 1 in this scenario?
class person {
var name = "Slippin Jimmy"
private(set) var age = 18
func getOlder() {
age = age + 1
print(age)
}
}
var saul = person()
print("saul's age is \(saul.age)")//saul's age is 18
saul.getOlder()//19
saul.age + 1 //20
saul.age - 1 //18
saul.age * 3 //57
//saul.age = 22//cannot assign to property: 'age' setter is inaccessible
print("saul's age is \(saul.age)")//saul's age is 19