Go 語言函數引用傳遞值
引用傳遞是指在調用函數時將實際參數的地址傳遞到函數中,那麼在函數中對參數所進行的修改,將影響到實際參數。
引用傳遞指針參數傳遞到函數內,以下是交換函數 swap() 使用了引用傳遞:
/* 定義交換值函數*/
func swap(x *int, y *int) {
var temp int
temp = *x /* 保持 x 地址上的值 */
*x = *y /* 將 y 值賦給 x */
*y = temp /* 將 temp 值賦給 y */
}
以下我們通過使用引用傳遞來調用 swap() 函數:
package main
import "fmt"
func main() {
/* 定義局部變數 */
var a int = 100
var b int= 200
fmt.Printf("交換前,a 的值 : %d\n", a )
fmt.Printf("交換前,b 的值 : %d\n", b )
/* 調用 swap() 函數
* &a 指向 a 指針,a 變數的地址
* &b 指向 b 指針,b 變數的地址
*/
swap(&a, &b)
fmt.Printf("交換後,a 的值 : %d\n", a )
fmt.Printf("交換後,b 的值 : %d\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x /* 保存 x 地址上的值 */
*x = *y /* 將 y 值賦給 x */
*y = temp /* 將 temp 值賦給 y */
}
以上代碼執行結果為:
交換前,a 的值 : 100 交換前,b 的值 : 200 交換後,a 的值 : 200 交換後,b 的值 : 100

Go 函數