Mengakses Pembolehubah Tahap Malar atau Pakej Daripada Pembolehubah Tahap Fungsi
Dalam Go, adalah perkara biasa untuk mengisytiharkan pemalar atau pembolehubah pada pakej tahap, menjadikannya boleh diakses sepanjang pakej. Walau bagaimanapun, apabila pembolehubah turut diisytiharkan pada peringkat fungsi, ia mengambil keutamaan berbanding pembolehubah peringkat pakej dalam skop fungsi.
Bagaimanakah kita boleh merujuk kepada pembolehubah peringkat pemalar atau pakej dan bukannya fungsi- pembolehubah tahap dalam kes sedemikian?
Penjelasan
Malangnya, tiada cara mudah untuk merujuk kepada pembolehubah peringkat pakej apabila pembolehubah peringkat fungsi dengan nama yang sama hadir. Menurut spesifikasi Go, sebarang pengecam yang diisytiharkan dalam blok, termasuk fungsi, diutamakan daripada pengecam yang diisytiharkan pada tahap pakej dalam skop blok tersebut.
Penyelesaian
Untuk mengakses kedua-dua pembolehubah peringkat pakej dan peringkat fungsi secara serentak, pertimbangkan penyelesaian berikut:
1. Gunakan Nama Berbeza
Jika boleh, gunakan nama berbeza untuk pembolehubah peringkat fungsi dan peringkat pakej untuk mengelakkan konflik. Ini membolehkan anda mengakses kedua-dua pembolehubah secara bebas.
2. Simpan Salinan Pembolehubah Tahap Pakej
Sebelum memberikan nilai kepada pembolehubah peringkat fungsi, simpan salinan pembolehubah peringkat pakej dalam pembolehubah baharu dengan nama yang berbeza. Dengan cara ini, anda boleh merujuk kepada pembolehubah peringkat pakej walaupun dalam skop fungsi.
3. Cipta Fungsi
Pendekatan lain ialah mencipta fungsi yang mengembalikan nilai pembolehubah peringkat pakej. Ini membolehkan anda mengakses pembolehubah peringkat pakej dengan memanggil fungsi dalam skop pembolehubah peringkat fungsi.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah Tahap Pakej Apabila Pembolehubah Tahap Fungsi dengan Nama Yang Sama Wujud dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!