Senior
Какво е defer в Go? Какво ще изведе кодът с два defer?
sobes.tech AI
Отговор от AI
В езика Go ключовата дума defer се използва за отлагане на извикването на функция: тя ще бъде изпълнена след като завърши обграждащата функция, но преди нейното връщане.
Ако в една функция има няколко defer, те се изпълняват в обратен ред на тяхното обявяване (стек на извикванията).
Пример:
package main
import "fmt"
func main() {
defer fmt.Println("Първи defer")
defer fmt.Println("Втори defer")
fmt.Println("Основен код")
}
Изходът ще бъде:
Основен код
Втори defer
Първи defer
Тоест, първо се изпълнява основният код, след това отложените извиквания в обратен ред.