Go 語(yǔ)言教程
引用傳遞是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)的地址傳遞到函數(shù)中,那么在函數(shù)中對(duì)參數(shù)所進(jìn)行的修改,將影響到實(shí)際參數(shù)。
引用傳遞指針參數(shù)傳遞到函數(shù)內(nèi),以下是交換函數(shù) swap() 使用了引用傳遞:
/* 定義交換值函數(shù)*/ func swap(x *int, y *int) { var temp int temp = *x /* 保持 x 地址上的值 */ *x = *y /* 將 y 值賦給 x */ *y = temp /* 將 temp 值賦給 y */ }
以下我們通過(guò)使用引用傳遞來(lái)調(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)用 swap() 函數(shù) * &a 指向 a 指針,a 變量的地址 * &b 指向 b 指針,b 變量的地址 */ swap(&a, &b) fmt.Printf("交換后,a 的值 : %dn", a ) fmt.Printf("交換后,b 的值 : %dn", b ) } func swap(x *int, y *int) { var temp int temp = *x /* 保存 x 地址上的值 */ *x = *y /* 將 y 值賦給 x */ *y = temp /* 將 temp 值賦給 y */ }
以上代碼執(zhí)行結(jié)果為:
交換前,a 的值 : 100 交換前,b 的值 : 200 交換后,a 的值 : 200 交換后,b 的值 : 100其他擴(kuò)展