Swift中为对象赋值/操作加法、乘法、减号之间有什么不同



我正在操场上试用私人(套装(。

比如说,一个叫Slippin Jimmy的人,他的年龄属性不应该在人类之外操作,因为年龄变量有一个私有(集(前缀。

我不能直接给age属性赋值,但我仍然可以操作age,比如加1,减1,乘以它,我想这是因为没有新的变量来存储数据,无论我如何操作age变量,它仍然保持来自person类的相同值,对吧?

那么,在这种情况下,+1、-1、*1和=1之间有什么不同呢?

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

Person.age有一个私有的setter。这意味着您不能从类外部设置age的值。不过,您仍然可以谈论它(访问它的值(,因为它的getter不是私有的,这正是有问题的代码正在做的事情——在描述其他数字时提到它的值。所有这些都是不设置age:值的表达式

saul.age + 1
saul.age - 1
saul.age * 3

从上到下,他们的意思是:

  • saul.age多一个的值
  • saul.age小一的值
  • saul.age大三倍的值

你只是在谈论一些数字!:(另一方面,如果你说:

saul.age = 20

那么它的意思是";将CCD_ 7改变为20〃;,并且这是不允许的,因为CCD_ 8具有私有设置器。

附带说明:在普通Swift文件中,顶级不允许使用saul.age + 1之类的表达式。事实上,这是为你汇编的,这表明你可能在斯威夫特游乐场。

相关内容

  • 没有找到相关文章

最新更新