Dalam bahasa Go, kaedah init() digunakan untuk pemulaan pakej selepas memulakan setiap pakej, fungsi init() akan dilaksanakan secara automatik dan keutamaan pelaksanaan lebih tinggi daripada keutamaan pelaksanaan utama; fungsi. Kaedah init() biasanya digunakan untuk: 1. Pengiraan boleh ubah; Fungsi init() dipanggil dan dilaksanakan secara automatik apabila program berjalan, dan ia tidak boleh dipanggil secara aktif dalam kod. Fungsi init bagi pakej yang berbeza menentukan susunan pelaksanaan fungsi permulaan mengikut kebergantungan yang diimport oleh pakej.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Penerangan terperinci tentang fungsi Go init
Fungsi init dalam bahasa go digunakan untuk memulakan pakej (pakej). go language Ciri penting
Apabila program dilaksanakan, penyataan pakej import akan secara automatik mencetuskan panggilan fungsi init() di dalam pakej.
Selepas setiap pakej dimulakan, fungsi init() akan dilaksanakan secara automatik, dan keutamaan pelaksanaan adalah lebih tinggi daripada keutamaan pelaksanaan fungsi utama.
Perlu diambil perhatian bahawa fungsi init() tidak mempunyai parameter dan tiada nilai pulangan.
Fungsi init biasanya digunakan untuk:
Pengiraan berjalan
Fungsi init() dipanggil dan dilaksanakan secara automatik apabila atur cara berjalan dan ia tidak boleh dipanggil secara aktif dalam kod.
Jujukan pelaksanaan permulaan pakej ditunjukkan dalam rajah di bawah:
Hasilnya ialah:
10 Hello 沙河
Init( ) fungsi mempunyai Ciri-ciri berikut:
Fungsi init digunakan untuk memulakan pakej sebelum pelaksanaan program, seperti memulakan pembolehubah dalam pakej, dll.
Setiap pakej A boleh mempunyai berbilang fungsi init
Setiap fail sumber pakej juga boleh mempunyai berbilang fungsi init
Berbilang init fungsi dalam pakej yang sama Susunan pelaksanaan fungsi init tidak ditakrifkan dengan jelas (penjelasan) dalam bahasa Go
Fungsi init bagi pakej yang berbeza menentukan susunan pelaksanaan fungsi permulaan mengikut kebergantungan yang diimport oleh pakej
Fungsi init tidak boleh dipanggil oleh fungsi lain, tetapi dipanggil secara automatik sebelum fungsi utama dilaksanakan
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 --->") }
Hasil pelaksanaan
function s() —> init function —> main —>
Walaupun pakej diimport beberapa kali, permulaan hanya perlu dilakukan sekali.
Pengenalan ciri
Fungsi init tidak perlu menghantar 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"
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Apakah kegunaan kaedah init() dalam bahasa go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!