是否有可能在Swift中改变一个字符串,以便可以证明它可以修改原始值?

时间:2015-09-17 18:37:01

标签: string swift mutability

首先声称Swift使字符串变为'可变',Are Swift "mutable" strings really mutable, or are they just like Java strings?,但继续使用普遍接受的(和非Swift )可变性定义 - 即。严格评估不变性,不考虑绑定

是否有可能实际改变字符串值,以便打印'true'?

var str = "Mutate me!"

let a1 = (unsafeAddressOf(str))
// some 'mutating operation'
let a2 = (unsafeAddressOf(str))

print(a1 == a2)

对'结构类型'或延迟复制语义感兴趣。这个问题是关于是否可以从Swift中修改字符串值 - 尽管看看是否可以通过其他狡猾的手段进行变异也是有趣的。 (如果不是,甚至不愿意讨论价值与参考类型instead of pure mutability considerations。)

我知道"mutating" methods但不同意那些“突变”字符串值。在上面的示例中,let在最终程序中应该是可替换的。如果let无法替代;或者不能证明对象是相同的,那么可变性就没有显示出来。

0 个答案:

没有答案