Dalam bahasa pengaturcaraan seperti C, seseorang boleh mentakrifkan pembolehubah tempatan sebagai statik menggunakan kata kunci statik, membolehkan mereka mengekalkan nilainya antara panggilan fungsi . Adakah terdapat mekanisme serupa yang tersedia dalam Go?
Menggunakan Penutupan
Dalam Go, penutupan ialah fungsi literal yang mempunyai akses kepada pembolehubah yang ditakrifkan dalam skop lampirannya. Pembolehubah ini dikongsi antara penutupan dan fungsi penutup dan berterusan selagi ia masih boleh diakses. Tingkah laku ini serupa dengan pembolehubah tempatan statik dalam bahasa lain.
func main() { x := 1 y := func() { fmt.Println("x:", x) x++ } for i := 0; i < 10; i++ { y() } }
Dalam contoh ini, pembolehubah x diisytiharkan dalam fungsi utama dan diakses dalam penutupan y. Penutupan boleh mengubah suai nilai x dan perubahan ini dikekalkan merentas panggilan berikutnya kepada y.
Pendekatan ini menyediakan kefungsian yang serupa dengan pembolehubah tempatan statik tanpa memerlukan pengubah suai eksplisit seperti statik. Ia membenarkan takrifan pembolehubah tempatan dengan keadaan berterusan, menjadikannya alat yang berharga untuk pelbagai senario pengaturcaraan.
Atas ialah kandungan terperinci Adakah Penutupan Go Menyediakan Kefungsian Pembolehubah Tempatan Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!