Sobes.tech
Senior

Kas ir defer Go? Ko izvadīs kods ar diviem defer?

sobes.tech AI

Atbilde no AI

Go valodā atslēgvārds defer tiek izmantots funkcijas atlikšanai: tā tiks izpildīta pēc apkārtējās funkcijas pabeigšanas, bet pirms tās atgriešanās.

Ja funkcijā ir vairākas defer, tās tiek izpildītas pretējā secībā nekā tās tika deklarētas (izsaukšanas steks).

Piemērs:

package main

import "fmt"

func main() {
    defer fmt.Println("Pirmā defer")
    defer fmt.Println("Otrā defer")
    fmt.Println("Galvenais kods")
}

Izvade būs:

Galvenais kods
Otrā defer
Pirmā defer

Tas nozīmē, ka vispirms tiek izpildīts galvenais kods, pēc tam atliktās izsaukšanas pretējā secībā.