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 таза әрі қауіпсіз код жазуға көмектеседі, маңызды аяқтау әрекеттерін орындауды кепілдендіреді.