Middle
Mis on defer operaator Go keeles?
sobes.tech AI
Vastus AI-lt
defer operaatorit kasutatakse funktsiooni või meetodi hilinenud täitmiseks. Funktsioonid, mis on märgitud defer-iga, täidetakse täpselt enne nende sisaldava funktsiooni väljundit.
defer-i tööpõhimõtted:
- Täidetakse, kui väljutakse praegusest funktsioonist, olenemata sellest, kas see on normaalne või panik.
- Mitmed
defer-id samas funktsioonis täidetakse LIFO (Last-In, First-Out) järjekorras. - Kasulik ressursside puhastamiseks, näiteks failide või võrguliiklusete sulgemiseks.
Näide kasutamisest:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Fail avaneb.")
file, err := os.Open("example.txt")
if err != nil {
// Vea töötlemine
return
}
// Hilinenud faili sulgemine
defer file.Close()
defer fmt.Println("Fail suletakse.") // See `defer` täidetakse esimese asjana (LIFO)
fmt.Println("Faili töötlemine...")
// Täiendav töö faili peal
}
Programmi väljund:
Fail avaneb.
Faili töötlemine...
Fail suletakse.