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ā.