Pergi fungsi bahasa melewati nilai referensi
Lewat referensi mengacu pada saat memanggil fungsi melewati alamat parameter aktual ke fungsi, maka fungsi untuk mengubah parameter dilakukan, akan mempengaruhi parameter yang sebenarnya.
Melewati parameter referensi pointer dilewatkan ke fungsi, berikut fungsi pertukaran swap () menggunakan lewat referensi:
/* 定义交换值函数*/ func swap(x *int, y *int) { var temp int temp = *x /* 保持 x 地址上的值 */ *x = *y /* 将 y 值赋给 x */ *y = temp /* 将 temp 值赋给 y */ }
Kami melewati referensi dengan menggunakan swap panggilan berikut () fungsi:
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 */ }
Kode di atas dijalankan sebagai akibat dari:
交换前,a 的值 : 100 交换前,b 的值 : 200 交换后,a 的值 : 200 交换后,b 的值 : 100