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 помага да се пише по-чист и по-безопасен код, гарантирайки изпълнението на важни действия за завършване.