Sobes.tech
Junior — Middle

Kas võib olla mitu defer-operatorit ühes funktsioonis?

sobes.tech AI

Vastus AI-lt

Jah, Go keeles saab ühes funktsioonis kasutada mitut defer-i. Kõik hilinenud kutsed täidetakse vastupidises järjekorras (LIFO) pärast funktsiooni lõpetamist. See on kasulik ressursside vabastamiseks, failide sulgemiseks, mutexide avamiseks jne.

Näide:

func näide() {
    defer fmt.Println("Esimene defer")
    defer fmt.Println("Teine defer")
    fmt.Println("Funktsiooni kehas")
}

// Väljund on:
// Funktsiooni kehas
// Teine defer
// Esimene defer