问题标签 [mutable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么字符串在 Java 和 .NET 中不能是可变的?
为什么他们决定String
在 Java 和 .NET(以及其他一些语言)中实现不可变?他们为什么不让它可变呢?
c++ - 除了允许 const 函数修改变量之外,'mutable' 关键字还有其他用途吗?
不久前,我遇到了一些用mutable
关键字标记类的成员变量的代码。据我所见,它只允许您修改const
方法中的变量:
这是这个关键字的唯一用途,还是有更多的用处?从那以后,我在一个类中使用了这种技术,将 a 标记boost::mutex
为可变的,允许const
函数出于线程安全的原因锁定它,但是,老实说,这感觉有点像 hack。
oop - 可变对象与不可变对象
我试图了解可变对象与不可变对象。使用可变对象会带来很多负面影响(例如,从方法中返回字符串数组),但我无法理解这样做的负面影响。使用可变对象的最佳实践是什么?你应该尽可能避免它们吗?
python - 列表更改意外地反映在子列表中
我需要在 Python 中创建一个列表列表,所以我输入了以下内容:
该列表如下所示:
然后我更改了最里面的值之一:
现在我的列表如下所示:
这不是我想要或期望的。有人可以解释发生了什么,以及如何解决它吗?
python - 为什么类的新实例与其他实例共享成员?
我希望回报:
但我得到:
为什么是这样?我发现通过在init中执行 a=[] ,我可以绕过这种行为,但我不太清楚为什么。
c# - 为什么可变结构是“邪恶的”?
在关于 SO 的讨论之后,我已经多次阅读了可变结构是“邪恶”的评论(就像在这个问题的答案中一样)。
C# 中的可变性和结构的实际问题是什么?
c# - 是否有充分的理由说明闭包在 C# 中不是不可变的?
我一直在脑海中一遍又一遍地思考这个问题,我似乎无法想出一个很好的理由来解释为什么 C# 闭包是可变的。如果您不知道到底发生了什么,这似乎是一种获得一些意想不到的后果的好方法。
也许有更多知识的人可以解释为什么 C# 的设计者会允许状态在闭包中改变?
例子:
这将为第一次调用打印“hello”,但在第二次调用时外部状态会发生变化,打印“goodbye”。闭包的状态已更新以反映对局部变量的更改。
c++ - C++中的字符串
我对 C++ 中的字符串有以下疑问
1>>哪个是更好的选择(考虑性能),为什么?
1.
或者
2.
2>>
当一个较大的字符串被复制到一个较小的字符串中时,c++ 中如何准确地处理内存管理?c++ 字符串是可变的吗?
c++ - 在 C++ 中缓存昂贵的数据 - 函数范围的静态变量与可变成员变量
我有一个相对昂贵的数据获取操作,我想缓存它的结果。这个操作是从const
方法中调用的,大致是这样的:
我想AdjustData
留下来const
,但我想缓存这个因素,所以我只在第一次获取它。目前我正在使用 amutable map<int, double>
来存储结果(地图是 from key
to factor
),但我认为使用函数范围的静态可能是一个更好的解决方案 - 这个因素只需要这个函数,并且与其余的班级。
这似乎是一个好方法吗?有没有更好的选择?我可能会想到什么,特别是在线程安全方面。
谢谢,
多姆
iphone - 搜索 NSMutableArray 的问题
基本上,我有一个 UISearchBar 搜索组成 RSS 提要的故事的 NSMutableArray,当您选择一个故事时,它会加载到我的应用程序的 UIWebView 中。这很难解释,但我有一个条目 1、2、3 和 4 的列表,您搜索“4”。4 将是现在过滤的数据列表中的第一个条目,对吗?你会认为通过选择 4,它会加载到 UIWebView 中。好吧,该应用程序似乎无法识别您正在选择过滤数据列表中的第一个条目,而是认为您正在选择未过滤数据数组中的第一个条目,因此它加载条目 1。一切看起来就在我的代码中,但显然不是。
我知道这是一个令人困惑的问题,但我希望我说得清楚一些。无论如何,这里是相关的来源,这样你就可以明白我的意思: