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