问题标签 [mutability]
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.
list - Scala,读取文件操作每一行,将每一行插入列表
我正在逐行读取文件,将子字符串“replace”替换为子字符串“replacement”。字符串操作完成后,我想将每一行插入到列表中。
当我调用该函数时,所有返回的是:
有任何想法吗, ?
javascript - 更改 jQuery 旋钮最小值/最大值
我正在为 jquery-knob 小部件开发一个角度包装器。只要最大值不改变,以下工作即可。如果是这样,ng-model 绑定就会丢失。如果我不破坏手表开始时的旋钮小部件,最大值不会改变。
正在做:
也不行。有任何想法吗?
arrays - 就内存而言,不可变数组与可变数组如何工作?
具体来说,为什么语言中的所有数组都不是可变的 - 语言会或不会拥有它们的原因是什么(优点和缺点)?
python - Python:更新参考值
以下是我认为应该如何工作的:
以下让我感到沮丧:
我知道 list 没有更新功能,并且知道我可以执行以下操作:
...但我想要一个更通用的选项来更新参考值,所以对象仍然属于字典,但值已经改变。
这样做的原因是我有一个嵌套字典,看起来像:
我的问题不是针对 list 是否具有更新功能-而是我在问是否有更简洁的方法来引用和更改深度嵌套字典中的值,因此将其存储在参考值中会更好看而不是每次我想分配一些东西时都输入它。
谢谢!
编辑:第一个示例中的固定语法
EDIT2:让我明确一点:我知道列表没有update
功能,而是我在询问通用参考值更新
EDIT3:简化问题
iterator - 如何从一个范围创建一个 Vec 并将其洗牌?
我有以下代码:
并得到以下错误:
我想我明白向量和切片的内容是不可变的,这会导致这里出现错误,但我不确定。
as_mut_slice
is的签名pub fn as_mut_slice<'a>(&'a mut self) -> &'a mut [T]
,所以切片应该是可变的,但不知何故它不是。
我知道必须有一个简单的解决方法,但我尽了最大努力,却无法让它发挥作用。
c - 从函数内部将数组作为函数参数传递,该函数将其作为 C 中的参数
天!
如果我有一个将整数数组作为参数的函数,然后从该函数内部,将同一个数组发送到另一个函数,它是否仍然能够编辑数组值并将它们提交到主级别而不是在功能层面?
IE
其中函数 B 如下所示:
函数 C 是实际改变 A[] 中的值的函数。
main 会看到更改后的数组还是原来的 A[]?
谢谢!
java - 明确区分对象的不可变和可变部分是否是好的设计?
让我们想想这个类,ImmutablePart
不可变的纯数据在哪里Object
:
在这个阶段使用组合是一种好习惯,更清楚地表明一个部分是可变的,另一个是不可变的,还是只是样板?像这样(MutablePart
对于 的字段具有 getter 和 setter Clazz1
)。
EDIT1:可以更具体地说,不可变部分是从包含某种元信息的文件构建的,因此不打算改变。可变部分将随着运行时间而发展。假设我正在开发一个 p2p 应用程序。不可变部分将包含有关我的客户端将与对等方共享的文件集的所有信息,以及一些哈希键以确保接收到的数据包的真实性。而可变部分将包含有关共享状态的信息,即一些状态、上传的字节数、下载的字节数等......不可变部分可以很容易地称为“元信息”,而可变部分可以称为“上下文”,如果你想要更有意义的名字。但我的问题更多是关于这种设计的实用性。感谢您的回答!
EDIT2:我选择的名称只是出于抽象目的,我会在实际实现中给出更好的名称。也就是说,我同意乍一看可能会令人困惑,说“显式”是指将两个部分严格区分为两个不同的对象,而不是明确命名一个部分“不可变”和另一部分“可变” .
ios - 如何处理 3 个不同但同时进行的异步调用
这是我的担忧:出于某种原因,我必须从 3 个不同的 Web 请求结果中检索和分组答案。一旦他们三个返回,我必须调用一个completionBlock并将所有结果传递给它。使用 NSOperation API,我设法做这样的事情:
其中completion 显然是作为入口参数给出的完成块。performRequestWithPath:method:parameter:completion: 创建一个 NSOperation,将它添加到全局队列并返回它,所以我在这里有 3 个网络调用。然后我创建一个块操作并将依赖项添加到前 3 个块中,因此在 3 个块完成之前不会触发它。
我担心的是 NSMutableArray 的事情。做这样的事情似乎是一个糟糕的设计,我不确定如果 2 个调用同时完成,它是否真的是 bug 证明。(请注意,我在 perform...: 方法中确保在主队列中调用完成块)。
任何反馈?建议,批评,理论......我很开放:)
graph - 在 F# 中制作循环图。是否需要可变性?
我正在尝试在 F# 中做一个循环图
我的节点类型如下所示:
我的问题是:我是否需要使 Edges 可变才能产生循环?
scala - 为什么在 Scala 中用 `def` 覆盖 `var` 是不可能的?
虽然我理解为什么 avar
不能覆盖val
子类中的 a ,反之亦然,但我无法理解为什么 Scala 不允许def
子类中的 a 覆盖var
超类中的 a
既然var
是可变的,为什么不允许 adef
覆盖它?谁能帮助我理解这一点?