Terdapat dua cara untuk memanggil fungsi dalam Go: lulus mengikut nilai dan lulus melalui rujukan. Melepasi nilai menghantar salinan pembolehubah ke fungsi tanpa menjejaskan nilai pembolehubah asal melalui rujukan menghantar alamat pembolehubah ke fungsi, dan sebarang pengubahsuaian akan menjejaskan nilai pembolehubah asal. Dalam pertempuran sebenar, fungsi Tambah menggunakan hantaran nilai, dan fungsi Multiply menggunakan hantaran rujukan untuk mengubah suai nilai pembolehubah dengan cara yang berbeza.
Dalam bahasa Go, panggilan fungsi boleh dilaksanakan dalam dua cara: lulus mengikut nilai dan lulus melalui rujukan.
Nilai berlalu menghantar salinan pembolehubah kepada fungsi, bermakna sebarang pengubahsuaian dalam fungsi tidak akan menjejaskan nilai pembolehubah asal.
package main import "fmt" func add(x int) int { x++ // 修改 x 的副本 return x } func main() { y := 5 newY := add(y) // 传递 y 的副本 fmt.Println(newY) // 输出 6 fmt.Println(y) // 输出 5 }
Rujukan lalu menghantar alamat pembolehubah kepada fungsi, yang bermaksud bahawa sebarang pengubahsuaian kepada pembolehubah dalam fungsi akan menjejaskan nilai pembolehubah asal.
package main import "fmt" func add(x *int) { *x++ // 修改 x 指向的值 } func main() { y := 5 add(&y) // 传递 y 的地址 fmt.Println(y) // 输出 6 }
Dalam kod berikut, kami mentakrifkan dua fungsi: Add
和 Multiply
。Add
使用值传递,而 Multiply
Lulus dengan rujukan.
Atas ialah kandungan terperinci Bagaimana untuk memanggil fungsi golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!