繁体   English   中英

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

[英]Why are properties of an immutable object mutable in Swift?

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

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

let lbl = UILabel()
lbl.textAlignment = .Right()

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

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

用他们的话说,

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

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

类类型是引用类型 - 值是指向对象的指针。 无法更改它只是意味着不更改引用,指向另一个对象。 它与您可以对指向的对象做什么没有任何关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM