Middle
Šta je operator defer u jeziku Go?
sobes.tech АИ
Одговор од АИ
Operator defer koristi se za odlaganje izvršenja funkcije ili metode. Funkcije označene sa defer izvršavaju se neposredno pre izlaska iz funkcije koja ih sadrži.
Principi rada defer:
- Izvršava se pri izlasku iz trenutne funkcije, bilo da je to normalno izvršenje ili panika.
- Više
deferu istoj funkciji izvršava se u LIFO (Last-In, First-Out) redosledu. - Koristan je za čišćenje resursa, kao što je zatvaranje fajlova ili mrežnih konekcija.
Primer upotrebe:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Otvaranje fajla.")
file, err := os.Open("example.txt")
if err != nil {
// Obrada greške
return
}
// Odloženo zatvaranje fajla
defer file.Close()
defer fmt.Println("Fajl će biti zatvoren.") // Ovaj defer će se izvršiti prvi (LIFO)
fmt.Println("Obrada fajla...")
// Dodatni rad sa fajlom
}
Izlaz programa:
Otvaranje fajla.
Obrada fajla...
Fajl će biti zatvoren.