Go - 向函数传递指针



Go 编程语言允许您将指针传递给函数。为此,只需将 function 参数声明为指针类型。

在下面的示例中,我们将两个指针传递给一个函数,并更改函数内部的值,该值反映回调用函数中 -


package main

import "fmt"

func main() {
	 	/* 局部变量定义 */
	 	var a int = 100
	 	var b int = 200

	 	fmt.Printf("Before swap, value of a : %d\n", a )
	 	fmt.Printf("Before swap, value of b : %d\n", b )

	 	/* 调用函数来交换值。
	 	* &a 表示指向变量a的ie地址的指针,和
	 	* &b 表示指向b的指针,即变量b的地址。
	 	*/
	 	swap(&a, &b);

	 	fmt.Printf("After swap, value of a : %d\n", a )
	 	fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x *int, y *int) {
	 	var temp int
	 	temp = *x 	 	/* 将值保存在地址x处 */
	 	*x = *y 	 	 	/* 将 y 代入 x */
	 	*y = temp 	 	/* 将 temp 代入 y */
}

编译并执行上述代码时,它会产生以下结果——

Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100