Middle
Čo je to operátor defer v jazyku Go?
sobes.tech AI
Odpoveď od AI
Operátor defer sa používa na odložené vykonanie funkcie alebo metódy. Funkcie označené defer sa vykonajú tesne pred opustením funkcie, ktorá ich obsahuje.
Princípy fungovania defer:
- Vykoná sa pri opustení aktuálnej funkcie, či už normálnym spôsobom alebo panikou.
- Viaceré
deferv jednej funkcii sa vykonajú v poradí LIFO (Last-In, First-Out). - Je užitočný na upratovanie zdrojov, ako je zatváranie súborov alebo sieťových spojení.
Príklad použitia:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Otvorenie súboru.")
file, err := os.Open("example.txt")
if err != nil {
// Spracovanie chyby
return
}
// Odložené zatvorenie súboru
defer file.Close()
defer fmt.Println("Súbor bude zatvorený.") // Tento defer sa vykoná ako prvý (LIFO)
fmt.Println("Spracovanie súboru...")
// Ďalšia práca so súborom
}
Výstup programu:
Otvorenie súboru.
Spracovanie súboru...
Súbor bude zatvorený.