Senior
Mis on defer Go-s? Mida näitab kood kahe deferiga?
sobes.tech AI
Vastus AI-lt
Go keeles kasutatakse märksõna defer funktsiooni hilinemiseks: see täidetakse pärast ümbritseva funktsiooni lõppu, kuid enne selle tagastamist.
Kui funktsioonis on mitu defer, siis need täidetakse vastupidises järjekorras nende deklaratsioonist (kutsesammas).
Näide:
package main
import "fmt"
func main() {
defer fmt.Println("Esimene defer")
defer fmt.Println("Teine defer")
fmt.Println("Põhikood")
}
Väljund on:
Põhikood
Teine defer
Esimene defer
See tähendab, et kõigepealt täidetakse põhikood, siis hilinenud kutsed vastupidises järjekorras.