Ne zaman init() işlevi (golang) çalıştırmak?
init()
işlevi gidip ne yaptığına dair kesin bir açıklama (golang) bulmaya çalıştım. effective go söylediklerini okudum ama ne dediğini tam olarak anladım eğer ben emin değildi. Emin değilim tam cümle şudur:
Ve nihayet sonunda demek: başlatma paketinde tüm değişken bildirimi kendi başlatıcılar değerlendirmesi sonunda denir, ve o tüm ithal paketleri başlatıldıktan sonra değerlendirilir.
all the variable declarations in the package have evaluated their initializers
ne anlama geliyor? Demek eğer bildirmek "global" değişkenler paket ve dosyaları, ınit() çalışmayacak kadar hepsini değerlendirilir ve sonra Çalıştır tüm ınit fonksiyonu ve daha sonra main (). /main_file_name koştu.
Ben de Mark Summerfield gidip kitabı aşağıdaki bilgileri okuyun:
Eğer bir paket, bir veya daha fazla ınit() otomatik olarak ana paketi daha önce yürütülen fonksiyonlar main() fonksiyonu denir.
Benim anlayışıma göre init()
niyetinde ana çalıştırmak için çalıştırdığınızda, sadece ilgili() değil mi? ya da Ana paketi. Herkes init()
beni düzeltmek için çekinmeyin daha doğrusu anlıyor
CEVAP
Evet this varsayarsak:
var WhatIsThe = AnswerToLife()
func AnswerToLife() int {
return 42
}
func init() {
WhatIsThe = 0
}
func main() {
if WhatIsThe == 0 {
fmt.Println("It's all a lie.")
}
}
AnswerToLife()
init()
çağrılmadan önce çalıştırmak için garanti edilir, ve init()
main()
çağrılmadan önce çalıştırmak için garanti edilir.
init()
hep denir ki, ne olursa olsun, eğer ana varsa orada ya da değil akılda tutmak, eğer init
bir fonksiyonu olan bir paket alırsanız, çalıştırılacaktır.
//Düzenle
Ayrıca, paket başına init()
birden fazla işlevi olabilir, sırayla idam edilecekler unutmayın onlar kodu tüm değişkenler elbette başlatıldıktan sonra ().
//2x . Düzenle
İç Gidip bir sürü başlatmak tablolar init()
görüldüğü gibi, örneğin https://github.com/golang/go/blob/883bc6/src/compress/bzip2/bzip2.go#L480 paketler
Golang: Ctrl C sinyal yakalama ve temi...
Değişkenleri içinde ve bir sınıf __dış...
Nasıl bir WordPress kullanmak bir işle...
Ne zaman SQLiteOpenHelper onCreate() /...
Görev koymak zorundasın.O zaman uyumsu...