Sobes.tech
Senior

В какъв ред се изпълняват няколко defer в една функция?

sobes.tech AI

Отговор от AI

В Go, няколко извиквания на defer в една функция се изпълняват в ред LIFO (Last In, First Out) — тоест, последното отложено извикване ще бъде изпълнено първо при изход от функцията.

Пример:

func пример() {
    defer fmt.Println("Първи")
    defer fmt.Println("Втори")
    defer fmt.Println("Трети")
}
// При изход от пример() ще се изведе:
// Трети
// Втори
// Първи