Sobes.tech
Junior — Middle

Jak lze vrátit výsledek funkce pomocí mechanismu Defer v programovacím jazyce?

sobes.tech AI

Odpověď od AI

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

Чтобы вернуть результат функции через механизм defer, можно использовать именованный возвращаемый параметр. Тогда внутри defer можно изменить значение этого параметра, и оно будет возвращено из функции.

Пример:

func example() (result int) {
    result = 1
    defer func() {
        result = 2 // изменяем возвращаемое значение
    }()
    return // возвращает result, который к этому моменту изменён на 2
}

// вызов example() вернёт 2

Таким образом, defer позволяет модифицировать возвращаемое значение функции перед её завершением, если используется именованный результат.