Middle
Mi az a defer operátor a Go nyelvben?
sobes.tech MI
Válasz az MI-től
A defer operátor a függvények vagy metódusok késleltetett végrehajtására szolgál. A defer-rel jelölt függvények vagy metódusok közvetlenül a hívó függvény kilépése előtt kerülnek végrehajtásra.
A defer működési elvei:
- A jelenlegi függvényből való kilépéskor hajtódik végre, legyen az normál végrehajtás vagy pánik.
- Több
deferegy függvényben LIFO (Last-In, First-Out) sorrendben hajtódik végre. - Hasznos erőforrások tisztítására, például fájlok vagy hálózati kapcsolatok lezárására.
Használati példa:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Fájl megnyitása.")
file, err := os.Open("example.txt")
if err != nil {
// Hibakezelés
return
}
// Késleltetett fájl bezárás
defer file.Close()
defer fmt.Println("A fájl bezárásra kerül.") // Ez a defer lesz az első (LIFO)
fmt.Println("Fájl feldolgozása...")
// További munka a fájllal
}
Program kimenete:
Fájl megnyitása.
Fájl feldolgozása...
A fájl bezárásra kerül.