问题标签 [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.
java - String builder如何管理对单个对象的多线程访问和可变性?
String 的劣势如何成为 String-builder 的优势。我的意思是我已经知道字符串是不可变的,因为如果假设有五个 String 对象并且如果一个对象发生变化,那么它将反映所有内容并可能导致运行时错误,之后 String-Buffer 是可变的,但至少它是一次同步一个线程。事情进展顺利,最后现在 String-builder 可变,可以访问多个线程。使用起来这么复杂?程序员如何管理它。
list - scala mutable val List
Few days ago I found Paul Philip’s gist https://gist.github.com/paulp/9085746 which shows quite strange behavior. I did not find any explanation how is that possible
simplified code snippet:
It works as expected without toIterable
What is going on there?
c++ - C++ 中的可变与不可变二叉树遍历
我来自 Python 和 Haskell 背景,所以当我必须编写一个函数来计算二叉树中电影的数量时,我是这样做的:
但是,使用类中提供的头文件,我必须这样做:
我非常了解前者相对于后者的优势;后者比前者有什么优势?它与堆栈内存使用有关,对吧?
rust - Rust 中 self 和集合的可变性问题
我正在用 Rust 编写一个简单的库来管理一副纸牌。它具有洗牌、发牌等功能。
shuffle() 函数采用对 self 的可变引用,允许重新洗牌现有的牌组。它应该非常简单:
- 从卡片组创建一个临时集合,其中包含一个带有卡片和随机数的元组。
- 按随机数对集合进行排序。
- 使用临时集合的顺序重建现有的牌组。
代码如下。
我遇到的问题是这不会编译,因为我收到错误。
这些错误抱怨可变性,我认为这意味着它不喜欢我在范围内有多个可变引用或其他东西,但我不知道如何修复它。我尝试使用大括号分隔符为每个操作制作块,但无济于事。我可能可以将其分解为多个函数,但我宁愿它是一个函数。我如何以最少的努力完成这项工作?
注意,我还没有测试排序功能,所以我希望 sort_by_key 能按照我的想法做,但这只有在我解决了第一个问题之后才有意义。
rust - 可变地借用一个结构字段,同时在闭包中借用另一个
我有一个包含两个字段的结构,我想使用另一个字段(不可变借用)修改一个字段(可变借用),但是借用检查器出现错误。
例如,下面的代码:
给出以下错误:
在闭包中使用另一个字段更新一个字段的 Rust 方法是什么?
java - Bloch 的 Effective Java 第 2 版中常量字段的定义
引用:
如果静态最终字段具有可变引用类型,则如果引用的对象是不可变的,它仍然可以是常量字段。
我不确定这是什么意思;有人可以举个例子吗?
ios - 更新 Swift 结构并访问完成块中的新值返回 Nil
我在改变结构然后在完成块中检索新数据时遇到问题。这是代码:
任何人都可以解释这是为什么以及如何修复它,以便在完成闭包中正确填充extendedInfo 变量吗?
谢谢
java - 返回集合的副本或克隆以防止可变性
我需要为 HashMap 的值提供一个 getter 方法,但是我不能允许对返回的 Collection 或其元素进行更改,这些元素将反映在我从中获取值集的原始 HashMap 中。我目前正在这样做:
这是否足以实现我的目标,或者返回的 Collection 的更改是否仍会反映在我的 HashMap 中?我问的原因是因为我知道对 Collection 的任何更改都返回了我的 Map 的 .values() 方法反映在原始 Map 中。谢谢!
iterator - How to extract values from &mut iterator?
I am trying to make an iterator that maps a string to an integer:
This fails with
the trait
core::iter::FromIterator<&mut u32>
is not implemented for the typecollections::vec::Vec<u32>
Adding a dereference operator around the word_map.entry().or_insert()
expression does not work as it complains about borrowing which is surprising to me as I'm just trying to copy the value.
scheme - 方案:在不同环境中变异局部变量会变异同一个对象
考虑这两个类似的过程:
鉴于这两个帮助程序:
将第一个调用三次会产生预期的结果:一个包含我们传入的1
内容的列表。obj
我希望调用第二个版本三次会产生相同的结果,但事实并非如此。
两个过程的行为不应该相同吗?