问题标签 [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.
rust - 不能作为不可变借用 - String 和 len()
但是,这是一个编译错误。与借用检查器和可能的可变性有关。
然而,如果我稍微改变它,我可以这样做:
为什么?有没有办法改变它,所以它可以写在一行中?(PS 这是在 Rust 1.0 上)
javascript - 如何解决 moment.js 中的可变性?
我遇到了一个问题,我必须存储时刻对象的初始值,但是在阻止我的变量与原始对象一起更改时遇到了一些麻烦。
不幸的是Object.freeze()
,它不起作用,因为Invalid date
当我尝试格式化时,moment.js 返回一个错误。
copy - 如何轻松地将非 mut &[u8] 复制到 &mut [u8]
我想对 &mut [u8] 做一些操作。
在我的测试代码中,我有:
在这种情况下,如何轻松获得可变的 u8 切片?问号的地方应该放什么?
objective-c - 可变与不可变的正确模式
我想知道实现可变与不可变数据结构的正确模式是什么。我理解这个概念以及它是如何工作的,但是如果使用底层的 Cocoa 数据结构,我应该如何实现呢?NSSet
我的意思是,例如,如果我使用 a 。可以说我有以下内容:
我使用可变集作为底层数据结构的唯一原因是,此类的可变版本可以篡改它。MyDataStructure
本身并不真的需要一个可变集。因此,假设我已经实现了一些初始化程序以使此类有用,MyMutableDataStructure
如下所示:
通过使用这种模式,底层数据结构总是可变的,它的不可变版本只是一个不可变的副本(或者是吗??)。
NSCopying
这也引出了实现协议时出现的另一个问题。这是一个示例实现:
copyWithZone:
如果适用,不返回不可变副本?所以我基本上将 a 分配NSSet
给一个NSMutableSet
属性,不是吗?
编辑:在深入研究这个问题时,我发现了围绕这个问题的更多问题。
mySet
应该copy
代替strong
.- 我的
copyWithZone:
实现也不对。我在第一篇文章中没有提到它,但该实现与数据结构 (MyDataStructure
) 的不可变版本有关。正如我所读到的,不可变数据结构实际上并没有创建副本,它们只是返回自己。这就说得通了。 - 由于 2.,我需要
copyWithZone:
在可变版本 (MyMutableDataStructure
) 中覆盖。
为了清楚起见:
和
起初这似乎很棘手,但我想我已经掌握了窍门。所以剩下的问题是:
- 模式是否正确?
- getter 是否
mySet
返回可变或不可变实例? copy
(之前未列出)使用copy
property 属性时我真的需要信号吗?
感谢您耐心读到这里。最好的。
rust - 不能将 `self.x` 作为不可变借用,因为 `*self` 也作为可变借用
首先,让代码说话:
这个错误:
如果我取消注释2.
or 3.
,为什么它编译得很好?被调用的函数 in1.
并没有做任何与2.
or完全不同的事情3.
。那么为什么1.
编译失败呢?
尽管有许多类似的标题问题,但我无法清楚地将其识别为欺骗(除了错误消息相同),可能是因为我对 Rust 中的所有权/借用系统缺乏了解。
rust - 修改 str 的切片
我有一个Vec<&str>
并且我想从它的所有元素中删除一个前缀。这就是我模糊的意图:
但是,我似乎无法将所有mut
' 放在正确的位置。或者也许这是与一生有关的事情?谁能给我一个提示?这是我当前的错误:
python - Python 集不会执行联合
我有一个定义了成员的类:
当我执行myobject.myset.add('item')
时,使用我的类的实例,它工作正常:print(myobject.myset)
给我 {'item'} 。
但是,当我执行时myobject.myset.union(yourset)
, whereyourset
不为空,它将不起作用;print(myobject.myset)
仍然打印为空集。为什么一种方法 ( add
) 有效,而另一种方法 ( )union
悄悄地(不抛出异常)失败?甚至myobject.myset = yourset
可以工作,但是union
特别不会。
我正在使用 Python 3。
rust - 如何解决此类项目中的借用和可变性地狱?
这个想法很简单:有些应用程序有一些 Windows。Windows 对其应用程序有某种类型的引用。他们需要使用彼此的方法。我已经编写了一些粗略的代码,但是当我解决一个问题时,我得到了一个新问题。
rust - 内部可变性如何对缓存行为起作用?
我正在尝试创建一个struct
需要 aPath
并根据需要从指定的路径加载图像。这是我到目前为止所拥有的:
这无法编译:
我想我明白为什么,因为 的生命周期cache
与borrow_mut()
.
反正有没有构造代码以便它工作?
python - Python3:如何控制用户定义类的行为?
有这样一个排序功能:
排序功能适用于浮点数。
示例输出:./insertion_sort.py .23 .21 .26
但是我有一个名为 lList 的自定义类,它具有链接(另一个自定义类)类型的元素。当我输入 lList 的实例时,排序无法正常工作。
样本输出:0.23 0.21 0.26 /
我们可以看到,在浮点数的情况下,在赋值语句之后,key 的 id 和数组元素是不同的。但是在自定义类的情况下,即使在赋值操作之后,键和数组元素的 id 也是相同的。这就是麻烦的原因。
我怀疑问题是因为浮点数是不可变的,而我的自定义类不是。我的问题是解决这种情况的最佳方法是什么?
注意:我希望在我的排序过程中进行零到最小的更改。但是,我愿意自定义我的 lList 或链接类。
PS 我刚刚只发布了相关的代码。如果还需要类定义,就提一下,我也会补充的。
非常感谢!
更新:
链接定义:
这是 lList 定义:
这是创建相同场景的最小代码: