Sobes.tech
Junior — Middle

Mi a defer operátor szerepe a Go nyelvben, és milyen előnyei vannak?

sobes.tech MI

Válasz az MI-től

A defer operátor a Go nyelvben arra szolgál, hogy egy függvényt késleltetve hajtson végre a környező függvény befejezése előtt (általában erőforrások felszabadítására vagy végső műveletek végrehajtására).

A defer előnyei:

  • Biztosítja a kód végrehajtását a függvény végén, még akkor is, ha a függvény hibával vagy pánikkal ér véget.
  • Javítja a kód olvashatóságát, lehetővé téve az erőforrások felszabadítását azok kiosztása mellett.
  • Megakadályozza a tisztítási kód ismétlését a függvény különböző helyein.

Példa:

func readFile() error {
    file, err := os.Open("file.txt")
    if err != nil {
        return err
    }
    defer file.Close() // a fájl a függvény kilépésekor bezáródik

    // fájl kezelése
    return nil
}

Itt a file.Close() automatikusan meghívódik a readFile kilépésekor, függetlenül attól, hogyan ér véget a függvény.