为什么不可变对象的属性在Swift中是可变的?

Jas*_*ldo 7 immutability swift

在Swift中,我们用一个表示一个不可变的变量let.

我不明白为什么你改变他们的属性.例如:

let lbl = UILabel()
lbl.textAlignment = .Right()
Run Code Online (Sandbox Code Playgroud)

你为什么要改变textAlignment?通过改变属性,我们还没有改变lbl应该是常量的变量吗?

erd*_*ser 15

根据Swift编程语言,常量结构的属性也是常量,但常量可以具有可变属性.

用他们的话来说,

如果创建结构的实例并将该实例分配给常量,则无法修改实例的属性,即使它们被声明为变量属性...

对于作为引用类型的类,情况也是如此.如果将引用类型的实例分配给常量,则仍可以更改该实例的变量属性.