引用資料型別的淺拷貝與深拷貝

2021-10-16 16:24:13 字數 690 閱讀 2495

基本的資料型別可以分為兩類

基本資料型別 值型別

數字 字串 布林值 undefined null

引用資料型別 引用型別

函式 陣列 物件

只有複雜資料型別(引用資料型別)才有淺拷貝與深拷貝

基本資料型別資料傳遞後,在改變源資料後面不會改變

基本資料型別存的是值

引用資料型別存的是位址

引用資料型別(複雜資料型別)的拷貝分為深拷貝與淺拷貝

淺拷貝就是把值儲存在堆裡,然而拷貝的是存貯的位址

所以當原資料或者拷貝資料發生改變之後,原資料跟拷貝的資料都會發生改變

深拷貝就是拷貝原資料的值

所以改變原資料或者拷貝的資料,兩者互不影響

基本資料型別存的是值

引用資料型別存的是位址

引用資料型別中淺拷貝與深拷貝的區別

淺拷貝直接賦值賦值的是記憶體位址,賦值之後兩個變數使用的相同內容,兩個變數中儲存的是相同的記憶體位址,乙個操作,另乙個也會改變。arr1 變數中 儲存的是 陣列的 記憶體位址 var arr1 1,2,3,4,5 將arr1 儲存的記憶體位址,賦值給arr2,兩個變數儲存的是相同的記憶體位址 var...

深拷貝 淺拷貝 資料型別

1 不可變型別 包括數值 字串 元組 不可變指的是不能改變引用,只能放置乙個新的引用 2 可變型別 包括列表和字典 可變指的是當向列表或字典裡面增刪改時,引用沒有受到影響 進一步解釋可變與不可變,是指記憶體中的那塊內容 value 是否可以被改變。如果是不可變型別,在對物件本身操作的時候,必須在記憶...

集合資料型別,拷貝,深拷貝,淺拷貝

用 中間值用,隔開,且集合中元素排列是無序的,而且如果有相同元素會只保留乙個 1.必須掌握 1.長度len set 1 print len set 1 52.成員運算in和not in 表示判斷集合裡面是否有某個值 set 1 print 1 in set 1 true print 100 in s...