Back to questions
Senior
1
Что такое defer в Go? Что выведет код с двумя defer?
Companies where asked
Flant
Answer from AI
sobes.tech AI
В Go ключевое слово defer используется для отложенного вызова функции — она будет выполнена после завершения окружающей функции, но перед её возвратом.
Если в функции несколько defer, они выполняются в порядке, обратном объявлению (стек вызовов).
Пример:
package main
import "fmt"
func main() {
defer fmt.Println("Первый defer")
defer fmt.Println("Второй defer")
fmt.Println("Основной код")
}
Вывод будет:
Основной код
Второй defer
Первый defer
То есть сначала выполняется основной код, затем отложенные вызовы в обратном порядке.