问题标签 [deep-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.
javascript - 完全基本的 Javascript 参考问题
Javascript 控制台中的以下内容:
产量:
Object foo=[1]
我想为 a 中的每个键在每个数组的 b 中按值复制。有没有更简单的方法?
c# - 深拷贝 ASP.NET GridView
我正在为一组同行创建一个自定义控件,但我遇到了障碍。该控件的目的是提供一种简单的方法来实现具有嵌套、排序等的网格。
为了创建嵌套,我有一个子 GridView 作为其余子级的蓝图。我允许开发人员按照他们想要的方式对其进行配置,然后自定义控件会制作许多相同的副本。
我的问题是我不能完美地复制子网格。MemberWiseClone() 似乎不起作用,并且 GridView 不可序列化。
我当前的解决方案是手动复制我知道我们需要的字段列表(ID、CssClass 等),但这显然是不够的,甚至不涉及 EventHandlers。
有没有一种很好的方法来深度复制 GridView——或者——提供我使用另一种方法描述的功能?
arrays - Scala中二维数组的深拷贝?
如何在 Scala 中对二维数组进行深度复制?
例如
我希望 val b 复制 a 的值但不指向同一个数组。
c++ - std::map 的浅/深拷贝
我将如何最好地实施这些?我想到了这样的事情:
成员data
定义如下:
不幸的是,这不起作用。这是编译器错误,我不太了解它们:
不知何故,这对我来说看起来不必要地复杂。这是真的吗?我可以让它变得更好吗?
顺便说一句,我从 shape 派生的类中有 clone() 方法。也许我可以将它们用于 clone_deep 方法?他们还好吗?它们看起来像这样:
python - 深度复制一个简单的 Python 对象
我有一个定义__deepcopy__
方法的对象。我想要一个函数,它不会通过它给出的方法来深度复制它,而是以默认方式object
复制类的对象。
我怎么能那样做?我想我可以尝试编写代码,但可能有很多我不会想到的“陷阱”。
我这样做的原因是因为我有一个实现__deepcopy__
方法的对象类,并且该方法检查某些条件,并且在某些情况下它会以某种方式深度复制对象,而在其他情况下它将在默认object
方式。
python - 如何调试针对自定义类型调用 Python 的 copy.deepcopy() 的问题?
在我的代码中,我尝试使用copy.deepcopy
. 问题是在某些情况下它会出现以下错误:
经过大量挖掘,我发现我能够使用以下代码重现错误:
问题似乎是在某些时候它试图复制NotImplementedType
内置。问题是它为什么要这样做?我在课堂上没有被覆盖__deepcopy__
,也不是一直发生。有没有人有任何提示来追踪制作这种类型的副本的请求来自哪里?
我已经在copy
模块本身中放置了一些调试代码,以确保这是正在发生的事情,但是问题发生的地方在递归堆栈中很远,很难理解我所看到的。
apache-flex - Flex:FileReference 的 DeepCopy
在我的项目中,我让用户使用 FileReference 类来挑选图片。然后,我使用 load() 函数将这些图片加载到它们的 .data 属性中。在此之后,我执行一些本地操作并将它们发送到服务器。
我想做的是能够再次遍历选择的 FileReferences,将它们加载到 .data 属性中,执行不同的操作并将它们再次发送到服务器。我知道我应该能够从用户调用的事件中做到这一点,这不是问题。
问题是,一旦第一次加载 FileReference,我无法以任何方式卸载它,而且我无法将所有图片的数据保留在内存中,因为它们非常庞大。
所以我想我只能做一件事,就是在 FileReference 上执行 DeepCopy ......然后我可以加载第一个版本,将其废弃并将副本用于第二次“运行”。
我尝试使用 ObjectUtil.copy,但是当我访问副本的例如 .name 属性时,它失败了:
在 flash.net::FileReference/get name()
相关片段:
FileReference 类的某些受保护属性是否会阻止它被复制?如果是这样,我可以以某种方式回避这个吗?或者我的整体问题还有其他解决方案吗?
我感谢任何提示/想法!
c# - 如何深度复制包含 lambda 表达式的对象?
又是我,关于我的《洛克人》游戏。我切换到组件系统,以便对象可以由数据驱动。一切正常,但我遇到了问题。
我的对象有状态,用输入文件指定。这些状态具有将它们转换到其他状态的触发器。状态更改的条件也在输入文件中,并被解析为 lambda 表达式。现在我需要深度复制我的对象,并且我需要 lambdas 来引用副本的成员,而不是原始的成员。程序加载时会从文件中加载原件,但之后可以随时复制(想想发射的弹丸)。
这是一段大大简化的代码:
不仅如此,触发器实际上会导致状态更改,然后新状态的初始化程序调用该 Action,但我在这里对其进行了简化。
所以问题是当我深拷贝这个组件时,或者无论如何尝试,我不知道如何让 lambdas 引用副本的 DependentComponent 实例,而不是原始的实例。我已经确保实体的深层副本正在获得一个新的 DependentComponent,但 lambda 只是引用原始组件。委托一旦创建就基本上锁定到特定实例吗?我必须创建一个新的吗?我不想再次从文件中加载整个实体。
linq - Enumerable.Repeat() 是否进行深层复制?
如果我使用以下内容:
列表中的第二个元素会是第一个元素的深层副本吗?
注意: myCustomObject 可以是任何对象
编辑:您能否让我知道在处理自定义对象时 Enumerable.Repeat 的潜在用途?
谢谢
c# - 在 C# 中的二进制序列化中排除父对象
我对 C# 中的二进制序列化有疑问
我需要能够深度克隆 B 类的对象(当然还有它在图中的所有子对象)。我想通过使用二进制序列化来实现这一点。在这个问题的背景下,讨论是否是最好的方法是无关紧要的。
假设我有这个类结构:
使用二进制序列化进行深度克隆的辅助类(我从网上某处得到这个方法代码,不记得在哪里 TBH,但看起来还不错)
所以在我的应用程序的某个时刻,我点击了以下代码:
问题是调试器抱怨 A 类没有被标记为可序列化。
但我不想序列化 A,我想序列化 B,它是子对象 C。
我猜它也试图序列化父对象 A,因为它在对象图中都是相互关联的。但是有什么办法可以将它排除在序列化之外吗?