在java中,一旦创建,字符串对象就是不可变的。有些方法似乎更改了字符串对象,但它实际上做的是从原始字符串对象创建一个新的字符串对象以及修改。我只是想知道SWIFT中的String对象是否就是这种情况?
答案 0 :(得分:3)
是的,实际上是。 String是结构,struct是值类型。
这就是为什么你不能变异"您拥有let
引用的String(或任何其他值类型);这是因为您无法将新对象写回let
引用。
您可以通过var
引用已连接setter观察者的String(或任何其他值类型)来轻松证明这一点。当你"变异"时,你会看到,你设置了。