Rumah > Artikel > pembangunan bahagian belakang > Artikel yang menganalisis fungsi init () dalam Golang
Penerangan terperinci tentang fungsi Go init
Selepas memulakan setiap pakej, fungsi init() akan dilaksanakan secara automatik dan keutamaan pelaksanaan ialah lebih tinggi daripada Keutamaan pelaksanaan fungsi utama. [Cadangan berkaitan: Pergi tutorial video]
Fungsi init biasanya digunakan untuk:
Pengamalan pakej
Untuk menggunakan pakej yang diimport, ia mesti dimulakan terlebih dahulu . Permulaan sentiasa dilakukan dalam satu utas dan dalam susunan kebergantungan pakej. Ini dikawal oleh sistem masa jalan Golang, seperti yang ditunjukkan di bawah:
initial.go
package main import "fmt" var _ int64=s() func init(){ fmt.Println("init function --->") } func s() int64{ fmt.Println("function s() --->") return 1 } func main(){ fmt.Println("main --->") }
Laksanakan Keputusan
fungsi s() —>
fungsi init —>
utama —>
walaupun pakej digunakan beberapa kali Import dan permulaan hanya perlu dilakukan sekali.
Ciri
Fungsi init tidak perlu memasukkan parameter, dan ia juga tidak perlu mengembalikan sebarang nilai. Berbeza dengan main, init tidak diisytiharkan dan oleh itu tidak boleh dirujuk.
package main import "fmt" func init(){ fmt.Println("init") } func main(){ init() }
Ralat berlaku semasa menyusun fungsi "undefined:init
" di atas.
Setiap fail sumber boleh mengandungi lebih daripada satu fungsi init, sila ingat bahawa "cara perarakan" yang ditulis dalam setiap fail sumber hanya boleh mengandungi satu fungsi init, ini berbeza sedikit, jadi teruskan ke pengesahan seterusnya .
package main import "fmt" func init(){ fmt.Println("init 1") } func init(){ fmt.Println("init2") } func main(){ fmt.Println("main") } /* 实施结果: init1 init2 main */
Daripada contoh di atas, anda boleh melihat bahawa setiap fail sumber boleh mengandungi berbilang fungsi init.
Contoh biasa bagi fungsi permulaan adalah untuk menetapkan nilai ungkapan awal.
var precomputed=[20]float64{} func init(){ var current float64=1 precomputed[0]=current for i:=1;i<len(precomputed);i++{ precomputed[i]=precomputed[i-1]*1.2 } }
Memandangkan tidak mungkin menggunakan gelung for untuk nilai prakiraan dalam kod di atas (iaitu pernyataan), anda boleh menggunakan fungsi init untuk menyelesaikan masalah ini.
Kesan sampingan peraturan import pakej Go
Go sangat ketat dan tidak membenarkan rujukan kepada pakej yang tidak digunakan. Tetapi kadangkala anda merujuk pakej hanya untuk memanggil fungsi init untuk melakukan beberapa permulaan. Tujuan pengecam kosong (iaitu garis bawah) adalah untuk menyelesaikan masalah ini.
import _ "image/png"
Abstrak
Di atas ialah keseluruhan kandungan artikel ini. Saya berharap kandungan artikel ini akan menjadi nilai rujukan kepada kajian atau kerja anda.
Alamat asal: https://developpaper.com/detailed-explanation-of-init-function-in-go-language/
Alamat terjemahan: https://learnku .com/go/t/47178
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Atas ialah kandungan terperinci Artikel yang menganalisis fungsi init () dalam Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!