Fungsi Go boleh bersarang, dan fungsi terbenam boleh mengakses pembolehubah fungsi luaran. Kaedah lulus parameter termasuk: lulus mengikut nilai (menyalin nilai) dan lulus dengan rujukan (melepasi alamat). Fungsi bersarang dan hantaran parameter digunakan dalam aplikasi praktikal, seperti mengira purata tatasusunan dan mengubah suai pembolehubah luaran dengan lulus melalui rujukan untuk mencapai pemprosesan data yang fleksibel.
Fungsi Go nested function parameter passing
Fungsi dalam Go boleh bersarang, yang bermaksud bahawa satu fungsi boleh ditakrifkan di dalam fungsi lain. Fungsi bersarang boleh mengakses pembolehubah fungsi luar, tetapi bukan sebaliknya.
Syntax
Sintaks fungsi bersarang adalah seperti berikut:
func outerFunction(args ...) { func innerFunction(args ...) { // 访问外部函数的变量 } }
Parameter passing
Apabila fungsi bersarang dipanggil, parameternya boleh dihantar ke fungsi luar. Parameter boleh dihantar dengan cara berikut:
Contoh nilai lulus:
func outerFunction(x int) { func innerFunction(y int) { fmt.Println(x + y) // 输出 x + y } innerFunction(10) } func main() { outerFunction(5) // 输出 15 }
Contoh rujukan lulus:
func outerFunction(x *int) { func innerFunction(y *int) { *y += *x // 更改外部函数的变量 x } innerFunction(x) } func main() { x := 5 outerFunction(&x) fmt.Println(x) // 输出 10 }
Sebuah kes praktikal
Berikut ialah kes praktikal menggunakan bersarang
Atas ialah kandungan terperinci fungsi golang hantaran parameter fungsi bersarang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!