Копирование в программировании

Deep copy

Полная или глубокая копия - это отдельный объект с такими же значениями как у оригинала, но больше с ним никак не связанный

Преположим есть объект A

A = [1, 2, 3]

Если сделать глубокую копию A → B

A = B = [1, 2, 3]

Объекты равны, но если помять значения в A это никак не скажется на B

A[0] = 4
A[1] = 5
A[2] = 6

A = [4, 5, 6]

B = [1, 2, 3]

B было копией A а теперь значения не совпадают и это нормально

Shallow copy

Неполная или поверхностная копия объекта

Рассмотрим снвоа объект A

A = [4, 5, 6]

Если сделать поверхностную копию A → С

С = [4, 5, 6]

С равно A и если теперь поменять значение A значение C тоже изменится так как у поверхностной копии нет своих элементов, она просто указывает на элементы A

A[0] = 7
A[1] = 8
A[2] = 9

A = [7, 8, 9]
С = [7, 8, 9]

Share in social media: