Bila Adakah Fungsi init() Berjalan?
Fungsi init() ialah fungsi khas dalam Go yang dipanggil sebelum yang utama () fungsi pakej. Ia biasanya digunakan untuk memulakan pembolehubah dan tugas persediaan lain. Tetapi apakah sebenarnya maksud ayat berikut dari Effective Go:
"Dan akhirnya bermaksud akhirnya: init dipanggil selepas semua pengisytiharan pembolehubah dalam pakej telah menilai pemula mereka, dan ia hanya dinilai selepas semua pakej yang diimport telah dimulakan."
Ini bermakna fungsi init() berjalan selepas semua pembolehubah global dalam pakej semasa, serta mana-mana pakej yang diimport, telah dimulakan dengan nilai lalai. Adalah penting untuk ambil perhatian bahawa susunan permulaan adalah berdasarkan susunan leksikal fail pakej, dan bukannya susunan import diisytiharkan.
Sebagai contoh:
var GlobalVar1 = 10 func init() { GlobalVar1 = 20 } func main() { // GlobalVar1 is 20 }
Dalam contoh ini, fungsi init() dipanggil selepas GlobalVar1 telah dimulakan kepada 10, dan ia mengatasi nilai GlobalVar1 hingga 20 sebelum fungsi main() dipanggil.
Perlu disebut bahawa fungsi init() sentiasa dipanggil, tidak kira sama ada pakej itu mempunyai fungsi main() atau tidak. Ini bermakna jika anda mengimport pakej yang mempunyai fungsi init(), ia akan dilaksanakan sebelum fungsi init() pakej anda sendiri.
Selain itu, pelbagai fungsi init() boleh ditakrifkan dalam satu pakej, dan ia akan dilaksanakan mengikut susunan ia muncul dalam fail sumber. Ini membolehkan anda melaksanakan berbilang tugasan permulaan dalam susunan tertentu.
Atas ialah kandungan terperinci Bilakah Tepat Adakah Fungsi `init()` Go Berjalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!