问题标签 [shallow-copy]

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.

0 投票
2 回答
4125 浏览

java - 通过制作浅拷贝来避免 List 上的 ConcurrentModificationException

我有一个像下面这样的类:

persons可以同时修改:一个是通过remove()一个线程,两个是通过getAllPersons().

我已经在多线程环境中测试了上述场景,看看是否可以通过在调用ConcurrentModificationException时返回浅拷贝来避免。getAllPersons()它似乎奏效了。我从来没有遇到过ConcurrentModificationException.

为什么,在这种情况下,只制作persons避免 a的浅表副本ConcurrentModificationException

0 投票
7 回答
1505 浏览

c++ - 关于 C++ 中最可能由自定义复制构造函数引起的分段错误的问题

我遇到了分段错误,我认为这是由复制构造函数引起的。但是,我在网上的任何地方都找不到这样的例子。我读过浅拷贝和深拷贝,但我不确定这个拷贝属于哪个类别。有人知道吗?

代码:

编辑:添加了 operator= 和构造函数

已解决:吠叫错误的树,它最终成为对同一个对象调用两次删除的函数

0 投票
2 回答
150 浏览

java - Java 浅拷贝和深拷贝 JLS

可能重复:
Java 通过引用传递问题

在我下面的代码中,methodA将被调用,然后将调用委托给methodB,在此过程中,methodB使用字符串文字“bbb”分配输入参数,但是,回到methodA,字符串文字不存在,JLS 的哪个部分定义了这个行为?

0 投票
1 回答
339 浏览

c# - 这个 List<> 在我的代码中的什么时候变空了?

你可以猜到,为了解释的目的,我已经删除了这段代码,但这几乎就是我正在做的所有事情。我有一种感觉,这与深/浅复制和克隆有关,如果是这样的话 - 有人可以帮助解释这里发生了什么以及我如何避免它/以不同的方式填充列表。

非常感谢,

编辑:对不起,我写的“documentList”实际上是这样写的:

所以你 - 它来自会话变量。使用断点我可以看到附件列表被填充得很好,但是当涉及到点击事件处理程序时它是空的!?不为空,只是计数 == 0。

0 投票
5 回答
26657 浏览

c# - 复制对象属性:反射或序列化——哪个更快?

我有两个相同类型的对象,需要将属性值从一个对象复制到另一个对象。有两种选择:

  1. 使用反射,浏览第一个对象的属性并复制值。

  2. 序列化第一个对象并反序列化副本。

两者都适合我的要求,问题是在速度(成本)方面我应该更好地使用哪个?

例子

需要将属性值从 复制Person p1Person p2

对于这个简单的示例 - 哪种方法更快?

更新

对于序列化,我使用此处建议的 ObjectCopier:Deep cloning objects

对于反射,我使用以下代码:

0 投票
1 回答
64 浏览

actionscript - 将一个动作脚本组件的值分配给另一个(浅拷贝)

我在 actionscript 中有两个标签组件:label1 和 label2。

我想让它在 label1.text 的值发生变化时,label2.text 的值自动更改为相同的值。

0 投票
1 回答
585 浏览

c# - C#中的对象浅拷贝

我知道要在 C# 中执行浅拷贝,我们可以使用 MemberwiseClone() 函数,但我在函数中有一个对象,我想获取这个对象的副本,所以当我添加到列表时它不会引用相同的更改对象时的对象是我的代码

我想将 UndoState 对象复制到一个新对象并添加到缓冲区

谢谢你

0 投票
2 回答
16807 浏览

c# - C#浅拷贝字典?

我需要在 C# 中浅拷贝字典。

例如:

不幸的是,这会返回错误:“错误 CS1540:无法访问受保护的成员object.MemberwiseClone()' via a qualifier of typeSystem.Collections.Generic.Dictionary'。限定符必须是 `PointFlagger' 类型或派生自它”

不完全确定这意味着什么......有没有另一种方法来浅拷贝字典/修复我上面的代码?

0 投票
2 回答
1864 浏览

python - python深拷贝和浅拷贝并传递引用

关于python深拷贝和浅拷贝的问题。

深拷贝和浅拷贝有 什么区别?

帮不了我。

为什么例如 1 的总和是 6 而不是 10 ?

例如1:

输出总和为 6

例如2:

输出总和为 10

例3:

输出总和为 6。

也,例如4

它的总和是 6 ,如果 theCopy 是对 kvps 的引用,它应该是 10。

0 投票
1 回答
1786 浏览

gmp - mpz_t 的浅拷贝

GMP 提供了初始化和分配 mpz_t 的方法。

调用 mpz_init_set(a, b) 会将 b 的内容分配给 a。但是,我认为这会对 b 执行深层复制。

在我的项目中,我需要使用长达 5,000,000 的 mpz_t 数组(我们谈论的是 640MB 内存),并且我正在使用的框架对此类类型执行各种分配操作(我没有开发框架并重写它不是一个选项)。最近,我意识到在大多数赋值之后,b 的值都被清除了,所以深度复制一个已经可以使用的值似乎是不自然的。但是,框架的接口不允许这样做(使用 mpz_t 的包装器),并且需要付出很多努力才能改变它(我仍然可以改变一些基本的东西)。

我已经尝试过基于指向 mpz_class 的指针的解决方案,但令人惊讶的是,它根本没有提高性能。事实上,它减慢了执行速度(虽然没有在巨大的数组上测试)。

我的问题是:我可以浅拷贝一个 mpz_t 吗?下面给出的例子