1. 程式人生 > >python值的引用傳遞和go語言的值傳遞

python值的引用傳遞和go語言的值傳遞

形參 簡單 調用 參數 由於 而是 nbsp 地址 傳遞

一:值傳遞

實參a 原本指向地址 1638212,代表1638212這個地址的值是3。在swap函數中,實參a將值拷貝給形參a,形參a此時也在內存中擁有地址,地址= xxxx,值為3,
在所有的函數體內的操作,都是對 xxxx這個地址的操作,所以並不會影響實際參數的值。

二:引用傳遞

這個理解起來更簡單,我們這樣理解引用,引用是變量的一個別名,調用這個別名和調用這個變量是完全一樣的。所以swap2的結果可以解釋。值得註意的是,
由於引用時別名,所以引用並不是一種數據類型,內存並不會給它單獨分配內存,而是直接調用它所引用的變量。這個與地址傳遞也就是指針是不一樣的
(也就是說一個指針雖然指向一個變量,但是這個指針變量在內存中是有地址分配的)

python值的引用傳遞和go語言的值傳遞