Sobes.tech
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.