Sobes.tech
Junior — Middle

Czy można mieć wiele operatorów defer w jednej funkcji?

sobes.tech AI

Odpowiedź od AI

Tak, w Go można używać wielu operatorów defer w jednej funkcji. Wszystkie odłożone wywołania będą wykonywane w odwrotnej kolejności (LIFO) po zakończeniu funkcji. Jest to przydatne do zwalniania zasobów, zamykania plików, odblokowywania mutexów itp.

Przykład:

func przykład() {
    defer fmt.Println("Pierwszy defer")
    defer fmt.Println("Drugi defer")
    fmt.Println("W ciele funkcji")
}

// Wyjście będzie:
// W ciele funkcji
// Drugi defer
// Pierwszy defer