Sobes.tech
Назад к вопросам
Junior — Middle
82

Как правильно организовать последовательность выполнения нескольких отложенных задач (defer)?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

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

Пример:

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

// Вывод будет:
// Выполнение функции
// Третий
// Второй
// Первый

Если нужна последовательность выполнения отложенных задач в том же порядке, что и объявлены, можно использовать явный стек или список и выполнять их вручную, либо избегать defer для таких случаев.