Junior — Middle
Կարող եք բացատրել defer կառուցվածքի աշխատանքի սկզբունքը և կիրառությունը Go լեզվում?
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, defer բանալի բառը օգտագործվում է ֆունկցիայի կանչումը հետաձգելու համար՝ այն կիրականացվի ընթացիկ ֆունկցիայից դուրս գալու պահին, անկախ այն բանից, թե ինչպես է տեղի ունենում դուրս գալը (նորմալ կամ սխալի պատճառով): Սա հարմար է ռեսուրսների ազատման, ֆայլերի փակման, mutex-ների բացման և այլ մաքրման գործողությունների համար:
Օրինակ՝
func readFile(filename string) error {
file, err := os.Open(filename)
if err != nil {
return err
}
defer file.Close() // ֆայլը կփակվի ֆունկցիայից դուրս գալու ժամանակ
// ֆայլի հետ աշխատանք
return nil
}
Այսպիսով, defer օգնում է գրել ավելի մաքուր և անվտանգ կոդ, երաշխավորելով կարևոր ավարտական գործողությունների կատարմանը։