我想知道为什么日期结构和对象,例如 C# 的 DateTime 和 Obj-C 的 NSDate 是不可变的。
我正在寻找这种设计背后的原因以及使这些信息不可变的好处,而不仅仅是“因为它们可以”
更新: 似乎有一个类似的问题对我有一个很好的答案,但专门针对 Java,可以在这里找到:Why do we need immutable class?
结合我的问题的答案非常有用
最佳答案
不可变性让很多事情变得更容易。如果你不必担心你下面的东西会发生变化,那么你就不必编写很多保护代码。您不必做出很多假设。事情有很多可能性不会出错。
在现代语言中,字符串、日期和其他类型的常见对象通常是不可变的,因为它简化了编译器、框架,并且意味着编译器在进行优化时可以自由做出假设。
要点是,以很小的代价(如果你想改变值就必须创建一个新对象),你可以获得很多真正的性能、稳定性和可靠性。
关于c# - 为什么日期结构是不可变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830781/