Prinsip penutupan fungsi dalam Go: Dengan mengembalikan fungsi tanpa nama, fungsi tanpa nama boleh mengakses pembolehubah konteks fungsi luaran. Aplikasi: Pengurusan keadaan: mengekalkan keadaan fungsi melalui penutupan dan elakkan menggunakan pembolehubah global. Objek olok-olok: Buat struktur seperti kelas dengan keadaan dan kaedah peribadi. Fungsi tertib lebih tinggi: Lulus dan gunakan penutupan untuk mencapai kebolehskalaan dan kebolehgunaan semula fungsi.
Mendedahkan prinsip dan aplikasi penutupan fungsi dalam Go
Prinsip
Dalam Go, penutupan fungsi dilaksanakan dengan mencipta fungsi tanpa nama dan mengembalikannya. Apabila kita memanggil fungsi luaran, ia mewujudkan konteksnya sendiri, yang merangkumi pembolehubah dan fungsi. Fungsi tanpa nama yang boleh mengakses pembolehubah ini walaupun selepas fungsi luar kembali dipanggil penutupan.
Contohnya:
func counter() func() int { var count int return func() int { count++ return count } }
Di sini, fungsi counter
mengembalikan fungsi tanpa nama. Apabila kita memanggil fungsi counter
, ia mencipta pembolehubah count
dan memulakannya kepada 0. Fungsi tanpa nama boleh mengakses pembolehubah count
walaupun fungsi counter
telah kembali. counter
函数返回了一个匿名函数。当我们调用 counter
函数时,它创建了 count
变量并将其初始化为 0。匿名函数可以访问 count
变量,即使 counter
函数已经返回。
应用
函数闭包在 Go 中有着广泛的应用,包括:
实战案例
让我们创建一个实时计数器示例:
package main import "fmt" func main() { counter := counter() for i := 0; i < 10; i++ { fmt.Println(counter()) } } func counter() func() int { var count int return func() int { count++ return count } }
输出:
1 2 3 4 5 6 7 8 9 10
闭包允许 counter
函数返回的匿名函数访问和更新 count
count
pembolehubah, dengan itu merealisasikan fungsi pengiraan masa nyata. 🎜Atas ialah kandungan terperinci Mendedahkan prinsip dan aplikasi penutupan fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!