Go 語言教程
傳遞是指在調(diào)用函數(shù)時將實際參數(shù)復(fù)制一份傳遞到函數(shù)中,這樣在函數(shù)中如果對參數(shù)進行修改,將不會影響到實際參數(shù)。
默認情況下,Go 語言使用的是值傳遞,即在調(diào)用過程中不會影響到實際參數(shù)。
以下定義了 swap() 函數(shù):
/* 定義相互交換值的函數(shù) */ func swap(x, y int) int { var temp int temp = x /* 保存 x 的值 */ x = y /* 將 y 值賦給 x */ y = temp /* 將 temp 值賦給 y*/ return temp; }
接下來,讓我們使用值傳遞來調(diào)用 swap() 函數(shù):
package main import "fmt" func main() { /* 定義局部變量 */ var a int = 100 var b int = 200 fmt.Printf("交換前 a 的值為 : %dn", a ) fmt.Printf("交換前 b 的值為 : %dn", b ) /* 通過調(diào)用函數(shù)來交換值 */ swap(a, b) fmt.Printf("交換后 a 的值 : %dn", a ) fmt.Printf("交換后 b 的值 : %dn", b ) } /* 定義相互交換值的函數(shù) */ func swap(x, y int) int { var temp int temp = x /* 保存 x 的值 */ x = y /* 將 y 值賦給 x */ y = temp /* 將 temp 值賦給 y*/ return temp; }
以下代碼執(zhí)行結(jié)果為:
交換前 a 的值為 : 100 交換前 b 的值為 : 200 交換后 a 的值 : 100 交換后 b 的值 : 200
程序中使用的是值傳遞, 所以兩個值并沒有實現(xiàn)交互,我們可以使用 引用傳遞 來實現(xiàn)交換效果。
其他擴展