Memelihara Keadaan Pembolehubah Setempat dalam Go: Pendekatan Seperti Statik
Tidak seperti dalam C, Go tidak mempunyai kata kunci "statik" terbina dalam untuk menentukan pembolehubah tempatan yang mengekalkan nilainya merentas panggilan fungsi. Nasib baik, terdapat alternatif yang elegan dalam Go: penutupan.
Penutupan: Kunci Memelihara Keadaan
Tersurat fungsi dalam Go ialah penutupan. Apabila fungsi literal merujuk kepada pembolehubah yang ditakrifkan dalam fungsi yang melampirkan, pembolehubah tersebut menjadi dikongsi dan boleh diakses di luar fungsi. Yang penting, pembolehubah ini berterusan selagi penutupan berada dalam skop.
Contoh: Mengekalkan Keadaan dengan Penutupan
Begini cara kita boleh mencapai kefungsian seperti statik menggunakan penutupan:
func main() { x := 1 y := func() { fmt.Println("x:", x) x++ } for i := 0; i < 10; i++ { y() } }
Dalam contoh ini, pembolehubah x diisytiharkan di luar definisi fungsi y tetapi adalah boleh diakses dalam penutupan. Setiap panggilan kepada y menambah x dan pembolehubah mengekalkan keadaannya merentas panggilan terima kasih kepada jangka hayat penutupan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Kegigihan Pembolehubah Tempatan seperti Statik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!