Middle
Ի՞նչ է defer-ը Go-ում և երբ է այն կանչվում:
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, defer բանալի բառը օգտագործվում է ֆունկցիայի կանչումը հետաձգելու համար՝ այն կիրականացվի շրջապատող ֆունկցիայի ավարտից հետո, բայց նրա ելքից առաջ:
Այսը հարմար է ռեսուրսների ազատման, ֆայլերի փակման, mutex-ների բացման և այլ մաքրման գործողությունների համար, ապահովելով, որ դրանք տեղի ունենան նույնիսկ սխալների կամ панիկի դեպքում:
Օրինակ՝
func readFile() {
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close() // ֆայլը կփակվի ֆունկցիայի վերջում
// ֆայլի հետ աշխատանք
}
Այստեղ, file.Close() ավտոմատ կերպով կկանչվի readFile-ից դուրս գալու ժամանակ, անկախ այն բանից, թե ինչպես է ֆունկցիան ավարտվում։