Sobes.tech
Junior — Middle

Можете ли да обясните принципа на работа и приложението на конструкцията defer в езика Go?

sobes.tech AI

Отговор от AI

В Go ключовата дума defer се използва за отлагане на извикването на функция: тя ще бъде изпълнена в момента на излизане от текущата функция, независимо от начина, по който се случва излизането (нормално или поради грешка). Това е удобно за освобождаване на ресурси, затваряне на файлове, отключване на мьютекси и други операции по почистване.

Пример:

func readFile(filename string) error {
    file, err := os.Open(filename)
    if err != nil {
        return err
    }
    defer file.Close() // файлът ще се затвори при излизане от функцията

    // работа с файла
    return nil
}

По този начин defer помага да се пише по-чист и по-безопасен код, гарантирайки изпълнението на важни действия за завършване.