Sobes.tech
Junior — Middle

Môže mať funkcia viacero operátorov defer?

sobes.tech AI

Odpoveď od AI

Áno, v jazyku Go je možné použiť viacero operátorov defer v jednej funkcii. Všetky odložené volania budú vykonané v opačnom poradí (LIFO) po ukončení funkcie. Je to užitočné na uvoľnenie zdrojov, zatvorenie súborov, odomknutie mutexov a pod.

Príklad:

func príklad() {
    defer fmt.Println("Prvý defer")
    defer fmt.Println("Druhý defer")
    fmt.Println("V tele funkcie")
}

// Výstup bude:
// V tele funkcie
// Druhý defer
// Prvý defer