问题标签 [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 投票
31 回答
728275 浏览

language-agnostic - 深拷贝和浅拷贝有什么区别?

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

0 投票
9 回答
142153 浏览

php - 如何在 PHP 中创建对象的副本?

似乎在 PHP 中对象是通过引用传递的。甚至赋值运算符似乎也没有创建对象的副本。

这是一个简单的、人为的证明:

在这两种印刷情况下,我都在“追求”

那么,如何通过值而不是引用将$a传递给set_b() ?

0 投票
3 回答
2519 浏览

c# - 继承类的浅拷贝

好的,所以我有一个名为 Product 的抽象基类,一个继承 Product 的 KitItem 类和一个继承 KitItem 的 PackageKitItem 类。IE。

我已经加载了我的 KitItems,我需要加载 PackageKitItems 的集合,它们实际上是 KitItems 的浅表副本。

目前,我们正在 Product 构造函数中做一个对我来说感觉很糟糕的浅拷贝,如下所示:

我试过在 KitItem 上设置一个副本,如下所示:

并这样称呼它:

但我得到一个无效的演员表。我正在寻找实现这一目标的最佳方法的想法。

0 投票
5 回答
12065 浏览

python - 无明显原因使用 Python 列表切片语法

我偶尔会看到 Python 代码中使用的列表切片语法,如下所示:

当然,这与以下内容相同:

还是我错过了什么?

0 投票
1 回答
562 浏览

c# - 对数组执行浅拷贝以调整其大小有什么影响?

如果我对深浅复制的理解是正确的,那么我的问题是不可能的。如果你有一个数组(a[10])并执行一个浅拷贝(b[20]),这不是不可能的,因为 b 中的数据不是连续的吗?

如果我完全错了,有人可以建议一种快速的方法来模仿(在 c# 中)c++ 执行 realloc 以调整数组大小的能力。

注意
我正在查看 System.Array 对象的 .Clone() 和 .Copy() 成员。

0 投票
4 回答
2289 浏览

c# - 你将如何改进这个浅拷贝类?

我用一个静态方法编写了一个类,该方法将属性值从一个对象复制到另一个对象。它不关心每个对象是什么类型,只关心它们具有相同的属性。它可以满足我的需要,因此我不会对其进行进一步设计,但是您会做出哪些改进?

这是代码:

我使用它如下:

0 投票
4 回答
9086 浏览

c# - 在 C# 中浅拷贝某些内容时,字符串如何工作?

字符串被认为是引用类型,但可以像值一样起作用。当手动或使用 MemberwiseClone() 进行浅拷贝时,如何处理字符串?它们是否被认为是独立于副本和母版的?

0 投票
4 回答
442 浏览

c# - 浅拷贝 - 引用类型异常性质

我无法理解下面给出的两组代码片段的输出。怎么没有真正理解浅拷贝的概念。怎么解释?

班级:

代码片段 1:

输出:名称1 11

怀疑:字符串不是引用类型。那么为什么 p2.Name 在片段 1 中打印为“Name1”

代码片段 2:

输出:名称1 1

0 投票
2 回答
1058 浏览

c# - 关于C#中数组浅拷贝的问题

只是为了确保我正确理解了引用类型的浅表副本,并且我没有在这里构造巨大的内存泄漏:

这将首先将引用复制到 rtbLog.Lines 中的字符串到行中。然后它将前 100 个引用从行复制到一个新的字符串数组中。

这意味着 rtbLog.Lines 最初引用的数组、最初由行引用的数组(在调整大小之前),最后是任何不包含在行中的字符串(在调整大小之后),都​​会被垃圾收集。(我希望这是有道理的)

正确的?

0 投票
8 回答
65226 浏览

c# - 在 C# 中进行浅拷贝的最快方法

我想知道在 C# 中进行浅拷贝的最快方法是什么?我只知道有两种方法可以做浅拷贝:

  1. 会员克隆
  2. 一个一个地复制每个字段(手动)

我发现(2)比(1)快。我想知道是否有另一种方法来进行浅拷贝?