Sobes.tech
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 defer u 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.