Junior — Middle
Czy możesz wyjaśnić zasadę działania i zastosowanie konstrukcji defer w języku Go?
sobes.tech AI
Odpowiedź od AI
W języku Go słowo kluczowe defer służy do odłożenia wywołania funkcji — zostanie ona wykonana w momencie opuszczenia bieżącej funkcji, niezależnie od tego, jak dokładnie do tego dojdzie (normalnie czy z powodu błędu). Jest to wygodne do zwalniania zasobów, zamykania plików, odblokowywania mutexów i innych operacji sprzątających.
Przykład:
func readFile(filename string) error {
file, err := os.Open(filename)
if err != nil {
return err
}
defer file.Close() // plik zostanie zamknięty przy opuszczaniu funkcji
// praca z plikiem
return nil
}
W ten sposób defer pomaga pisać bardziej czysty i bezpieczny kod, gwarantując wykonanie ważnych działań końcowych.