Middle
Mi az a defer a Go-ban, és mikor hívódik meg?
sobes.tech MI
Válasz az MI-től
Go nyelvben a defer kulcsszó egy függvény késleltetett hívására szolgál: a függvény a körülötte lévő függvény befejezése után, de annak kilépése előtt kerül végrehajtásra.
Ez hasznos az erőforrások felszabadítására, fájlok bezárására, mutexek feloldására és más tisztítási műveletekre, biztosítva, hogy ezek megtörténjenek még hibák vagy pánik esetén is.
Példa:
func readFile() {
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close() // a fájl a függvény végén bezáródik
// fájl kezelése
}
Itt a file.Close() automatikusan meghívódik a readFile elhagyásakor, függetlenül attól, hogyan ér véget a függvény.