问题标签 [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.
gdi+ - 对象库 - 访问索引值还是对象本身?(例如,也许是深拷贝还是浅拷贝?)
我一直对 .Net 如何复制引用感到困惑/不确定。假设我有一个 GDI+ 的位图对象。
'Foo' 保存位图对象。现在假设我这样做。
这是浅拷贝还是深拷贝?如果我将 foo 设置为无,bar 是否也会突然引用“无”?或者 bar 是否也包含位图的副本,并且为了从内存中完全删除位图,我需要将 'foo' 和 'bar' 都设置为空?
我需要在内存中保留一个位图库,对我来说,将每个创建的对象中每个位图的引用存储为变量会更容易,而不是使用索引对其进行编码并且每次都必须引用该库需要它(例如'BitmapLibrary.Singleton.getBitmap(id)')
简而言之,我可以这样做:
而不是这个:
language-agnostic - 复制构造函数/操作符/函数是否需要明确它实现的复制变体?
昨天我问了一个关于在 C# 中复制对象的问题,大多数答案都集中在深复制和浅复制之间的区别上,以及应该明确给定的复制构造函数(或运算符或函数)这两种复制变体中的哪一个实现。我觉得这很奇怪。
我用 C++ 编写了很多软件,这是一种严重依赖复制的语言,而且我从来不需要多个复制变体。我曾经使用过的唯一一种复制操作是我称之为“足够深的复制”的操作。它执行以下操作:
- 如果对象拥有成员变量的所有权(参见composition),它会被递归复制。
- 如果对象对成员变量没有所有权(参见聚合),则仅复制链接。
现在,我的问题有三个:
- 1) 一个对象是否需要多个副本变体?
- 2)复制功能是否需要明确它实现的复制变体?
- 3)顺便说一句,我所说的“足够深的副本”是否有更好的术语?我问了一个有关“深拷贝”一词定义的相关问题。
python - 如何浅拷贝应用引擎模型实例来创建新实例?
我想为我的应用引擎应用程序实现一个简单的 VersionedModel 基模型类。我正在寻找一种不涉及明确选择要复制的字段的模式。
我正在尝试这样的东西,但它对我的口味来说太老套了,还没有在生产环境中测试它。
有没有人有更简单的清洁解决方案来保存应用引擎模型的版本历史?
编辑:搬出copy
tx。感谢@Adam Crossland 的建议。
c# - .net memberwiseclone 浅拷贝不起作用
我正在使用 this.MemberwiseClone() 创建浅拷贝,但它不起作用。请看下面的代码。
当我运行程序时,它显示 objCustomerShallowCopy.Name 为“James”而不是“Jim”。
有任何想法吗??
java - android中意图中对象的浅拷贝
我有一些对象想通过意图传递给其他活动。但是,它们只需要是另一个对象的浅拷贝,因为它们只会被读取(即使它们要被修改,我也希望它们在原始活动中被修改),所以没有意义使对象可序列化,也因为并非对象中的所有字段都是可序列化的,我什至做不到。
此外,似乎使其可打包会遇到同样的问题。当然,似乎我可以在其中添加一些字段作为活动对象,但我不能让整个事情只是一个浅拷贝。
那么有什么方法可以在意图中制作对象的浅表副本,或者以任何其他方式将数据的浅表副本传递给另一个活动,就像您通常在 java 中传递参数一样?谢谢你。
linq - Does LINQ new up memory when creating returns
Does LINQ actually perform a deep copy of the results to a different list/array/etc, or does it simply give me a list/array/etc. composed of references to the original?
arrays - .slice() 成为“浅克隆”意味着什么?
ActionScript 的 Array 和 Vector 类都有一个 slice() 方法。如果不传递任何参数,则新的 Array 或 Vector 是原始 Vector 的副本(浅克隆)。
“浅克隆”是什么意思?具体来说,有什么区别
和
? 另外,如果 Vector 的基本类型不是 Foo,而是像 int 这样简单且不可变的东西怎么办?
更新:
下面的结果是什么?
谢谢!♥</p>
c++ - C ++中的默认赋值运算符=是浅拷贝?
只是一个简单的快速问题,我在其他任何地方都找不到可靠的答案。默认的 operator= 只是右侧所有类成员的浅表副本吗?
将等同于:
当我测试它时这似乎是正确的,但我需要确保我没有错过一些特定的情况。
c++ - 浅拷贝有什么问题?
这是我从这里看到的一个面试问题:http: //www.careercup.com/question?id=1707701
想知道更多关于这个。谢谢