为此选择了几种语言,例如C#,Java和Python。如果要节省内存或为进行诸如 compare之类的 操作提高效率,这对串联和其他修改操作有什么影响?
不变类型通常是一件好事:
因此,使字符串不可变是一种非常合理的语言设计选择。
某些语言(尤其是功能语言,例如Haskell和Clojure)走得更远,几乎使所有内容变得不可变。如果您对不变性的好处感兴趣,那么这部启发性视频非常值得一看。
不可变类型有一些小的缺点:
总体而言,不变性的优点远远大于次要的缺点。即使您只对性能感兴趣,但复制的并发优势和廉价通常会使不可变字符串比具有锁定和防御性复制的可变字符串更具性能。