【问题标题】:in swift, is a string object immutable once created? [duplicate]很快,字符串对象一旦创建就不可变了吗? [复制]
【发布时间】:2016-04-12 08:01:12
【问题描述】:

在java中,一旦创建,字符串对象是不可变的。一些方法似乎改变了字符串对象,但它实际上所做的是从原始字符串对象连同修改一起创建一个新的字符串对象。我只是想知道 SWIFT 中的 String 对象是否属于这种情况?

【问题讨论】:

    标签: string swift immutability


    【解决方案1】:

    是的,实际上是这样。 String 是一个结构体,结构体是一个值类型

    这就是为什么你不能“变异”一个有let 引用的字符串(或任何其他值类型);这是因为您无法将新对象写回let 引用。

    您可以通过 var 对您附加了 setter 观察者的字符串(或任何其他值类型)的引用开始轻松地向自己证明这一点。你会看到,当你“变异”时,你设置了。

    【讨论】:

    • matt,非常感谢您的帮助!您能否进一步扩展答案?也许更详细地解释一下?再次感谢您的帮助!
    • 要解释什么?你问了一个是非问题。嗯,是的。
    • 这个答案虽然正确,但在标记为重复的问题中提供的答案旁边堆叠时读起来确实不完整。那里的答案更能提供托尼所要求的细节。
    • 更何况这个问题不应该在这里问,@nhgrif。这是一个副本。在这个的地方,冷眼旁观正是它应得的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    相关资源
    最近更新 更多