использование методов deep_copy() и copy() в электронном языке

В чем разница между методами копирования и deep_copy в электронном языке?

Когда мне нужно использовать deep_copy(), и когда использование copy() достаточно хорошо?

Спасибо!


person Raz    schedule 27.04.2015    source источник


Ответы (4)


copy копирует скалярные поля и сохраняет ссылки на подструктуры. В то время как глубокая копия рекурсивно копирует все подструктуры.

person Zvika    schedule 27.04.2015

Чтобы скопировать скаляры, используйте copy. - будет ссылаться на подструктуры. Для копирования подструктур используйте глубокую копию.

person Noam Arzy    schedule 27.04.2015

Разница в том, что метод copy() неглубокий, т. е. копирует значения скаляров и указателей в списки или структуры. Deep_copy() — это более сильная копия с атрибутами для управления методом copy(), такими как ссылка или создание нового списка/структуры. Если вам нужна неглубокая копия без учета более глубокой иерархии, используйте copy(). Когда нам нужно уделить внимание более глубокой иерархии, используйте deep_copy().

person Assaf    schedule 27.04.2015

Copy() копирует только скалярные значения, указатели на структуры и ссылается на тот же список. Deep_copy() будет рекурсивно создавать новые экземпляры структуры, назначать новый список и создавать элементы списка. Если элементы списка являются структурами, то это также будут новые экземпляры.

person igsh    schedule 27.04.2015