Junior — Middle
Երբ է տեղի ունենում defer օպերատորի կանչը Go կոդի կատարման ընթացքում?
sobes.tech AI
Պատասխան AI-ից
Go լեզվում defer հրամանը հետաձգում է նշված ֆունկցիայի կատարմանը մինչև այն ֆունկցիայի դուրս գալը, որտեղ այն հայտարարված է։ Այլ կերպ ասած, defer-ին փոխանցված ֆունկցիայի կանչը տեղի է ունենում հենց այն պահին, երբ ընթացիկ ֆունկցիան վերադառնում է։ Սա հարմար է ռեսուրսների ազատման, ֆայլերի փակման, mutex-ների բացման և այլն համար։
Օրինակ՝
func օրինակ() {
defer fmt.Println("Հետաձգված կանչ")
fmt.Println("Հիմնական կոդ")
}
// Արդյունքը կլինի՝
// Հիմնական կոդ
// Հետաձգված կանչ