Sobes.tech
Junior — Middle

¿Puede explicar la secuencia de ejecución de las funciones diferidas registradas en Go?

sobes.tech AI

Respuesta de la IA

В Go отложенные функции (defer) выполняются в порядке, обратном их регистрации — то есть по принципу стека (LIFO).

Когда функция завершается, все отложенные вызовы выполняются в обратном порядке: последний зарегистрированный defer выполняется первым.

Пример:

func example() {
    defer fmt.Println("Первый defer")
    defer fmt.Println("Второй defer")
    defer fmt.Println("Третий defer")
    fmt.Println("В теле функции")
}

Вывод будет:

В теле функции
Третий defer
Второй defer
Первый defer

Это полезно, например, для освобождения ресурсов в обратном порядке их захвата.