複製物件顧名思義,複製乙個物件作為副本,它會開闢一塊新的記憶體(堆記憶體)來儲存副本物件,就像複製檔案一樣.既源物件和副本物件是兩塊不同的記憶體區域.
物件具備複製功能,必須實現
協議協議
常用的可複製物件有, 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 很...