Fahami cara parameter dihantar dalam bahasa Go

王林
Lepaskan: 2024-04-03 12:09:02
asal
1059 orang telah melayarinya

Dalam bahasa Go, parameter fungsi boleh dihantar mengikut nilai atau rujukan: Pass by value: salin nilai parameter dan pengubahsuaian tidak akan menjejaskan pembolehubah asal. Rujukan lulus: Menggunakan penunjuk membenarkan fungsi mengubah suai secara langsung nilai pembolehubah asal. Dalam aplikasi praktikal, kaedah lulus dipilih berdasarkan situasi khusus: lulus mengikut nilai mengelakkan menukar pembolehubah asal secara tidak sengaja. Rujukan lulus digunakan untuk berkongsi keadaan antara fungsi dan pemanggil, seperti mengemas kini nilai pembolehubah dalam pemanggil.

Fahami cara parameter dihantar dalam bahasa Go

Mendedahkan rahsia penghantaran parameter dalam bahasa Go

Dalam bahasa Go, parameter fungsi boleh dihantar dalam dua cara: lulus mengikut nilai atau lulus melalui rujukan. Memahami mekanisme lulus parameter adalah penting untuk menulis program Go yang cekap dan boleh diselenggara.

Nilai lulus

Nilai lulus ialah cara paling mudah untuk menghantar parameter, ia menyalin nilai parameter dan menghantarnya ke fungsi. Ini bermakna sebarang pengubahsuaian yang dibuat kepada parameter dalam fungsi tidak akan menjejaskan pembolehubah asal.

Contoh:

func add(x int) {
  x++
}

func main() {
  i := 10
  add(i)
  fmt.Println(i) // 输出:10
}
Salin selepas log masuk

Dalam contoh ini, fungsi add dihantar mengikut nilai, jadi pengubahsuaian kepada x tidak akan menjejaskan main< /code> Pembolehubah asal <code>i dalam fungsi. add 函数是按值传递的,因此对 x 所做的修改不会影响 main 函数中的原始变量 i

传递引用

传递引用允许函数直接修改原始变量的值。要按引用传递参数,需要使用指针类型(例如 *int)。

示例:

func add(x *int) {
  *x++
}

func main() {
  i := 10
  add(&i)
  fmt.Println(i) // 输出:11
}
Salin selepas log masuk

此示例中,add 函数是按引用传递的,通过使用 &iadd 函数会直接操作 main 函数中 i

Rujukan Laluan

Rujukan Laluan membenarkan fungsi mengubah suai secara langsung nilai pembolehubah asal. Untuk menghantar parameter melalui rujukan, anda perlu menggunakan jenis penunjuk (seperti *int).

Contoh:

func multiply(a *int, b *int) {
  *a *= *b
}

func main() {
  a := 5
  b := 10
  multiply(&a, &b)
  fmt.Println(a * b) // 输出:50
}
Salin selepas log masuk
Dalam contoh ini, fungsi add dihantar melalui rujukan Dengan menggunakan &i, fungsi add akan dihantar terus Manipulasi nilai i dalam fungsi main.

🎜Contoh Praktikal🎜🎜🎜Apabila menulis program Go, gunakan parameter lulus mengikut nilai atau rujukan, bergantung pada situasi. Nilai lulus biasanya digunakan untuk mengelak menukar pembolehubah asal secara tidak sengaja, manakala rujukan lulus digunakan untuk berkongsi keadaan antara fungsi dan pemanggil. 🎜🎜🎜Contohnya: 🎜🎜🎜Andaikan kita ingin menulis fungsi untuk mengira hasil darab dua nombor dan ingin mengemas kini pembolehubah asal selepas memanggil fungsi tersebut. Kita boleh melepasi dua pembolehubah ini dengan rujukan seperti ini: 🎜rrreee

Atas ialah kandungan terperinci Fahami cara parameter dihantar dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!