Middle
Defer деген эмне жана ал эмне үчүн колдонулат? Эгер бир функцияда бир нече defer чакыруулары болсо, алар кайсы тартипте ишке ашырылат?
sobes.tech AI
AIден жооп
Go тилинде, defer ачкыч сөзү функцияны кечиктирилген чакыруу үчүн колдонулат: ал чөйрө функциясы аяктагандан кийин, бирок анын кайтарылышы алдында ишке ашырылат. Бул ресурстарды бошотуу, файлдарды жабуу, mutexтерди ачуу жана башка тазалоо операциялары үчүн ыңгайлуу.
Эгер бир функцияда бир нече defer чакыруулары болсо, алар ээлеген тартиптин тескерисинде ишке ашырылат (тезме тартиби). Демек, акыркы жарыяланган defer биринчи ишке ашырылат.
Мисал:
func мисал() {
defer fmt.Println("Биринчи defer")
defer fmt.Println("Экинчи defer")
fmt.Println("Функциянын денесинде")
}
// Натыйжа мындай болот:
// Функциянын денесинде
// Экинчи defer
// Биринчи defer