Sobes.tech
Junior

Каква роля играе конструкцията defer в езика Go?

sobes.tech AI

Отговор от AI

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

Това е удобно за освобождаване на ресурси, затваряне на файлове, отключване на мьютекси и други операции по почистване.

Пример:

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

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

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