Middle
Co je to operátor defer v jazyce Go?
sobes.tech AI
Odpověď od AI
Operátor defer se používá k odložení vykonání funkce nebo metody. Funkce označené defer se vykonají těsně před opuštěním funkce, ve které jsou definovány.
Principy fungování defer:
- Vykoná se při opuštění aktuální funkce, ať už normálním průběhem nebo panikou.
- Více
deferv jedné funkci se vykoná v pořadí LIFO (Last-In, First-Out). - Je užitečný pro čištění zdrojů, například zavírání souborů nebo síťových spojení.
Příklad použití:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Otevíráme soubor.")
file, err := os.Open("example.txt")
if err != nil {
// Zpracování chyby
return
}
// Odložené zavření souboru
defer file.Close()
defer fmt.Println("Soubor bude zavřen.") // Tento defer se vykoná jako první (LIFO)
fmt.Println("Zpracováváme soubor...")
// Další práce se souborem
}
Výstup programu:
Otevíráme soubor.
Zpracováváme soubor...
Soubor bude zavřen.