237得票26回答
Java中字符串的不可变性

考虑以下示例。String str = new String(); str = "Hello"; System.out.println(str); //Prints Hello str = "Help!"; System.out.println(str); //Prints Help...

233得票76回答
一个不可变集合上最佳的非变异“添加”方法应该取什么名字?

抱歉标题过于冗长,如果我能想出一个简洁的标题,我就不用问这个问题了。 假设我有一个不可变列表类型。它有一个操作Foo(x),它返回一个新的不可变列表,其中指定的参数作为额外元素添加到末尾。因此,要构建一个字符串列表,其值为“Hello”,“immutable”,“world”,您可以编写: ...

229得票19回答
字符串是不可变的。这句话的意思是什么?

我写了以下关于不可变字符串的代码。 public class ImmutableStrings { public static void main(String[] args) { testmethod(); } private static vo...

224得票13回答
“冻结字典”是什么?

一个冻结集合是 frozenset。 一个冻结列表可以是元组。 那么一个冻结字典会是什么样子呢?它是一个不可变、可哈希的字典。 我猜它可能类似于 collections.namedtuple,但更像是一个冻结键的字典(半冻结字典)。不是吗? 一个“frozendict”应该是一个冻结的...

216得票19回答
JavaScript中的枚举与ES6

我正在用Javascript重建一个旧的Java项目,但发现在JS中没有很好的枚举方式。 我能想到的最好方法是: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("gr...

213得票11回答
不可变集合 vs 不可修改集合

从集合框架概述中得知: 不支持修改操作(如add、remove和clear)的集合被称为不可修改的(unmodifiable)。不是不可修改的都是可修改的(modifiable)。 此外,保证Collection对象不会显示更改的集合被称为不可变的(immutable)。不是不可变的都是可...

211得票8回答
为什么元组可以包含可变项?

如果一个元组是不可变的,为什么它可以包含可变项? 看起来似乎存在矛盾,因为当可变项(如列表)被修改时,它所属的元组仍然保持不可变。

208得票19回答
不可变类型 vs 可变类型

我对不可变类型感到困惑。我知道float对象被认为是不可变的,我的书上有这样一个例子:class RoundFloat(float): def __new__(cls, val): return float.__new__(cls, round(val, 2)) 由于类...

202得票12回答
可变 vs 不可变对象

我试图理解可变对象和不可变对象的区别。使用可变对象常常受到批评(例如从方法返回字符串数组),但我不太明白这样做的负面影响是什么。在使用可变对象方面有哪些最佳实践?是否应该尽可能避免使用可变对象?

202得票13回答
为什么.NET中的字符串是不可变的?

众所周知,String 是不可变的。String 不可变的原因是什么?为什么需要引入StringBuilder类来支持可变字符串?