Sobes.tech
Junior — Middle

Երբ է տեղի ունենում defer օպերատորի կանչը Go կոդի կատարման ընթացքում?

sobes.tech AI

Պատասխան AI-ից

Go լեզվում defer հրամանը հետաձգում է նշված ֆունկցիայի կատարմանը մինչև այն ֆունկցիայի դուրս գալը, որտեղ այն հայտարարված է։ Այլ կերպ ասած, defer-ին փոխանցված ֆունկցիայի կանչը տեղի է ունենում հենց այն պահին, երբ ընթացիկ ֆունկցիան վերադառնում է։ Սա հարմար է ռեսուրսների ազատման, ֆայլերի փակման, mutex-ների բացման և այլն համար։

Օրինակ՝

func օրինակ() {
    defer fmt.Println("Հետաձգված կանչ")
    fmt.Println("Հիմնական կոդ")
}
// Արդյունքը կլինի՝
// Հիմնական կոդ
// Հետաձգված կանչ