Middle
32
defer деген не және ол не үшін пайдаланылады? Егер бір функцияда бірнеше defer шақырылса, олар қандай тәртіппен орындалады?
Сұралған компаниялар
Effective Technologies
AI-дан жауап
sobes.tech AI
В Go ключевое слово defer используется для отложенного вызова функции — она будет выполнена после завершения окружающей функции, но перед её возвратом. Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций очистки.
Если в одной функции несколько defer-вызовов, они выполняются в обратном порядке их объявления (стековый порядок). То есть последний объявленный defer выполнится первым.
Пример:
func example() {
defer fmt.Println("Первый defer")
defer fmt.Println("Второй defer")
fmt.Println("В теле функции")
}
// Вывод будет:
// В теле функции
// Второй defer
// Первый defer