Apakah kegunaan kaedah init() dalam bahasa go?
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:
- Pengamatan pembolehubah
- Menyemak/membetulkan status
- Pendaftar
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:
- Mulakan pakej yang diimport (import rekursif)
- Kira dan tetapkan nilai awal kepada pembolehubah yang diisytiharkan dalam blok
- Laksanakan fungsi permulaan dalam pakej
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apabila menggunakan Goland untuk Pembangunan Bahasa GO, banyak pemaju akan menghadapi tag struktur tersuai ...

Pergi bahasa berfungsi dengan baik dalam membina sistem yang cekap dan berskala. Kelebihannya termasuk: 1. Prestasi Tinggi: Disusun ke dalam Kod Mesin, Kelajuan Berjalan Cepat; 2. Pengaturcaraan serentak: Memudahkan multitasking melalui goroutine dan saluran; 3. Kesederhanaan: sintaks ringkas, mengurangkan kos pembelajaran dan penyelenggaraan; 4. Cross-Platform: Menyokong kompilasi silang platform, penggunaan mudah.

Penghapusan automatik Golang Generik Jenis Kekangan Jenis dalam Pengguna VSCode mungkin menghadapi masalah yang aneh ketika menulis kod Golang menggunakan vscode. Bila ...
