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.