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