複製物件 和 淺拷貝,深拷貝

2021-06-22 16:50:18 字數 790 閱讀 9457

複製物件顧名思義,複製乙個物件作為副本,它會開闢一塊新的記憶體(堆記憶體)來儲存副本物件,就像複製檔案一樣.既源物件和副本物件是兩塊不同的記憶體區域.

物件具備複製功能,必須實現

協議協議

常用的可複製物件有, nsnumber, nsstring, nsarray, nsdictionary, nsmutabledictionary, nsmutablearray, nsmutablestring.

複製物件的種類

copy: 產生物件的副本是不可變的

mutablecopy: 產生的物件是可變的

淺拷貝和深拷貝的區別

淺複製,只複製物件的本身,物件裡的屬性,包含的物件不做複製.

深複製則既複製物件本身,物件的屬性也會複製乙份.

foundation 框架中支援複製的淚,預設是淺複製

淺拷貝 shallow copy深拷貝  deep copy

object a              ----------->copy           objectbobject a              ----------->copy           objectb

nscolor *textcolornscolor *textcolor

nscolor *textcolor

nscolor *textcolor

||||

|----------------->        textcolor  <-------------------| 

textcolor

textcolor

JS物件複製 深拷貝 淺拷貝

在本文中,我們將從淺拷貝 shallow copy 和深拷貝 deep copy 兩個方面,介紹多種 js 中複製物件的方法。var foo console.log foo.a abc var bar foo console.log bar.a abc foo.a yo foo console.lo...

拷貝python物件,淺拷貝和深拷貝

物件賦值實際上是簡單的物件引用。也就是說建立乙個物件然後賦值給另乙個變數的時候,python並沒有拷貝這個物件,而是拷貝了這個物件的引用。淺拷貝 淺拷貝的是物件本身,但是內容是原來物件的引用。拷貝物件本身是新的但是內容不是新的 拷貝物件的方式 來看 import copy a a b c 1,2,3...

Python深複製淺複製or深拷貝淺拷貝

簡單點說 1.copy.copy 淺拷貝 只拷貝父物件,不會拷貝物件的內部的子物件。2.copy.deepcopy 深拷貝 拷貝物件及其子物件 用乙個簡單的例子說明如下 import copy a 1,2,3,4,a b c b a c copy.copy a d copy.deepcopy a 很...