Sobes.tech
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-ից դուրս գալու ժամանակ, անկախ այն բանից, թե ինչպես է ֆունկցիան ավարտվում։