Sobes.tech
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 օգնում է գրել ավելի մաքուր և անվտանգ կոդ, երաշխավորելով կարևոր ավարտական գործողությունների կատարմանը։