Pembolehubah Tempatan Statik dalam Go
Tidak seperti dalam C, di mana pembolehubah tempatan boleh dibuat statik menggunakan perkataan terpelihara statik, Go tidak menyokong pembolehubah tempatan statik. Walau bagaimanapun, ia menyediakan cara alternatif untuk mencapai kefungsian yang serupa menggunakan penutupan.
Penutupan dalam Go
Penutupan dalam Go ialah literal fungsi yang merujuk kepada pembolehubah yang ditakrifkan dalam fungsi sekeliling. Pembolehubah ini dikongsi antara fungsi sekeliling dan penutupan dan kekal boleh diakses walaupun selepas fungsi sekeliling kembali.
Menggunakan Penutupan untuk Mensimulasikan Pembolehubah Setempat Statik
Untuk mensimulasikan setempat statik pembolehubah dalam Go, anda boleh menentukan fungsi dan penutupan yang mengakses pembolehubah kongsi. Contohnya:
func main() { x := 1 y := func() { fmt.Println("x:", x) x++ }
Dalam contoh ini, x ialah pembolehubah yang ditakrifkan dalam fungsi utama, dan y ialah fungsi literal yang merujuk kepada x. Pernyataan x menambah nilai x setiap kali y dipanggil.
Dengan menggunakan penutupan, x boleh mengekalkan nilainya antara panggilan ke y. Tingkah laku ini serupa dengan menggunakan pembolehubah tempatan statik dalam C.
Nota:
Tidak perlu pembolehubah yang dikongsi berada dalam skop global. Ia boleh ditakrifkan pada mana-mana peringkat di luar fungsi di mana penutupan ditakrifkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Pembolehubah Tempatan Statik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!