Senior
Kas yra defer Go? Ką išves kodas su dviem defer?
sobes.tech AI
Atsakymas iš AI
Go kalboje raktinis žodis defer naudojamas funkcijos vėlinimui: ji bus vykdoma po apimančios funkcijos pabaigos, bet prieš jos grąžinimą.
Jei funkcijoje yra keli defer, jie vykdomi atvirkštine tvarka nei buvo deklaruoti (kvietimo stekas).
Pavyzdys:
package main
import "fmt"
func main() {
defer fmt.Println("Pirmas defer")
defer fmt.Println("Antras defer")
fmt.Println("Pagrindinis kodas")
}
Išvesčiai bus:
Pagrindinis kodas
Antras defer
Pirmas defer
Tai reiškia, kad pirmiausia vykdomas pagrindinis kodas, tada atidėlioti iškvietimai atvirkštine tvarka.