Sobes.tech
Junior — Middle

Vai vienā funkcijā var būt vairāki defer operatori?

sobes.tech AI

Atbilde no AI

Jā, Go valodā vienā funkcijā var izmantot vairākus defer operatorus. Visas atliktās izsaukšanas tiks izpildītas pretējā secībā (LIFO) pēc funkcijas pabeigšanas. Tas ir noderīgi resursu atbrīvošanai, failu aizvēršanai, mutexu atbloķēšanai utt.

Piemērs:

func piemērs() {
    defer fmt.Println("Pirmais defer")
    defer fmt.Println("Otrais defer")
    fmt.Println("Funkcijas iekšpusē")
}

// Izvade būs:
// Funkcijas iekšpusē
// Otrais defer
// Pirmais defer