Junior
Jaką rolę odgrywa konstrukcja defer w języku Go?
sobes.tech AI
Odpowiedź od AI
W języku Go konstrukcja defer służy do odłożonego wykonania funkcji — zostanie ona wywołana w momencie wyjścia z bieżącej funkcji, niezależnie od tego, jak dokładnie to wyjście nastąpi (normalnie lub z powodu błędu).
Jest to wygodne do zwalniania zasobów, zamykania plików, odblokowywania mutexów i innych operacji sprzątania.
Przykład:
func readFile() error {
file, err := os.Open("file.txt")
if err != nil {
return err
}
defer file.Close() // plik zostanie zamknięty przy wyjściu z funkcji
// praca z plikiem
return nil
}
W ten sposób defer pomaga zagwarantować wykonanie ważnych działań końcowych, poprawiając zarządzanie zasobami i obsługę błędów.