相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

如何正确克隆JavaScript对象?

我有一个对象,x.我想把它复制为对象y,这样改变y就不要修改了x.我意识到复制从内置JavaScript对象派生的对象将导致额外的,不需要的属性.这不是问题,因为我正在复制我自己的一个文字构造的对象.

如何正确克隆JavaScript对象?

javascript clone javascript-objects

2922
推荐指数
42
解决办法
176万
查看次数

深度克隆对象

我想做的事情如下:

MyObject myObj = GetMyObj(); // Create and fill a new object
MyObject newObj = myObj.Clone();
Run Code Online (Sandbox Code Playgroud)

然后更改未在原始对象中反映的新对象.

我不经常需要这个功能,所以当有必要的时候,我已经使用了创建一个新对象然后单独复制每个属性,但它总是让我觉得有更好或更优雅的处理方式情况.

如何克隆或深度复制对象,以便可以修改克隆对象而不会在原始对象中反映任何更改?

.net c# clone

2135
推荐指数
34
解决办法
77万
查看次数

了解dict.copy() - 浅或深?

在阅读文档时dict.copy(),它说它是字典的浅层副本.我所遵循的书(Beazley的Python参考书)也是如此,它说:

m.copy()方法生成映射对象中包含的项的浅表副本,并将它们放在新的映射对象中.

考虑一下:

>>> original = dict(a=1, b=2)
>>> new = original.copy()
>>> new.update({'c': 3})
>>> original
{'a': 1, 'b': 2}
>>> new
{'a': 1, 'c': 3, 'b': 2}
Run Code Online (Sandbox Code Playgroud)

所以我假设这会更新original(并添加'c':3)的值,因为我正在做一个浅拷贝.就像你为列表做的那样:

>>> original = [1, 2, 3]
>>> new = original
>>> new.append(4)
>>> new, original
([1, 2, 3, 4], [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

这按预期工作.

由于两者都是浅拷贝,为什么dict.copy()它不能像我期望的那样工作?或者我对浅层和深层复制的理解是有缺陷的?

python

402
推荐指数
5
解决办法
22万
查看次数

浅拷贝,深度拷贝和正常分配操作之间究竟有什么区别?

import copy

a = "deepak"
b = 1, 2, 3, 4
c = [1, 2, 3, 4]
d = {1: 10, 2: 20, 3: 30}

a1 = copy.copy(a)
b1 = copy.copy(b)
c1 = copy.copy(c)
d1 = copy.copy(d)


print("immutable - id(a)==id(a1)", id(a) == id(a1))
print("immutable - id(b)==id(b1)", id(b) == id(b1))
print("mutable - id(c)==id(c1)", id(c) == id(c1))
print("mutable - id(d)==id(d1)", id(d) == id(d1))
Run Code Online (Sandbox Code Playgroud)

我得到以下结果 -

immutable - id(a)==id(a1) True
immutable - id(b)==id(b1) True
mutable - id(c)==id(c1) False
mutable - id(d)==id(d1) False
Run Code Online (Sandbox Code Playgroud)

如果我进行深度扫描 …

python copy immutability deep-copy variable-assignment

192
推荐指数
6
解决办法
9万
查看次数

System.Array.CopyTo()和System.Array.Clone()之间的区别

System.Array.CopyTo()和之间有什么区别System.Array.Clone()

.net c# arrays .net-2.0

74
推荐指数
5
解决办法
9万
查看次数

如何在kotlin中克隆或复制列表

如何在Kotlin中复制列表?

我正在使用

val selectedSeries = mutableListOf<String>()
selectedSeries.addAll(series)
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?

copy list kotlin

72
推荐指数
9
解决办法
3万
查看次数

何时使用记录 vs 类 vs 结构

  • 我是否应该Record用于在控制器和服务层之间移动数据的所有 DTO 类?

  • 我是否应该Record用于所有请求绑定,因为理想情况下我希望发送到控制器的请求对于我的 asp.net api 是不可变的

什么是记录?https://anthonygiretti.com/2020/06/17/introducing-c-9-records/

  public class HomeController 
  { 
    public IHttpAction Search([FromBody] SearchParameters searchParams)
    {
       _service.Search(searchParams);
    }
  }
Run Code Online (Sandbox Code Playgroud)

应该发SearchParameters一个Record

.net-5 c#-9.0 c#-record-type

65
推荐指数
4
解决办法
2万
查看次数

复制列表的最佳方法是什么?

复制列表的最佳方法是什么?我知道以下方法,哪一个更好?或者还有另一种方式吗?

lst = ['one', 2, 3]

lst1 = list(lst)

lst2 = lst[:]

import copy
lst3 = copy.copy(lst)
Run Code Online (Sandbox Code Playgroud)

python

55
推荐指数
4
解决办法
6万
查看次数

深拷贝与浅拷贝

可能重复:
深拷贝和浅拷贝之间有什么区别?

深拷贝和浅拷贝之间有什么区别.复制构造函数的副本是什么类型的?

c++ clone

52
推荐指数
2
解决办法
13万
查看次数