Middle
Defer nima va nima uchun ishlatiladi? Bir funksiyada bir nechta bo'lsa, defer chaqiruvlari qanday tartibda bajariladi?
sobes.tech AI
AIdan javob
Go tilida, defer kalit so'zi funksiyani kechiktirilgan chaqirish uchun ishlatiladi: u atrofdagi funksiyaning yakunlanishidan so'ng, lekin uning qaytarilishidan oldin bajariladi. Bu resurslarni bo'shatish, fayllarni yopish, mutexlarni ochish va boshqa tozalash operatsiyalari uchun qulay.
Agar bir funksiyada bir nechta defer chaqiruvlari bo'lsa, ular e'lon qilish tartibining teskari tartibida bajariladi (xechta tartibi). Ya'ni, so'nggi e'lon qilingan defer birinchi bajariladi.
Misol:
func misol() {
defer fmt.Println("Birinchi defer")
defer fmt.Println("Ikkinchi defer")
fmt.Println("Funktsiya tanasida")
}
// Natija quyidagicha bo'ladi:
// Funktsiya tanasida
// Ikkinchi defer
// Birinchi defer