Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mencapai Kegigihan Pembolehubah Tempatan seperti Statik dalam Go?

Bagaimanakah Saya Boleh Mencapai Kegigihan Pembolehubah Tempatan seperti Statik dalam Go?

Barbara Streisand
Lepaskan: 2024-12-11 12:00:19
asal
824 orang telah melayarinya

How Can I Achieve Static-like Local Variable Persistence in Go?

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()
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan