Sobes.tech
Middle

Go'da defer эмне жана ал качан чакырылат?

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ден чыгуу менен чакырылат, функция кандайча аяктаганына карабастан.