Middle
U kom redosledu se izvršavaju odložene funkcije (defer) u Go?
sobes.tech АИ
Одговор од АИ
Odložene funkcije se izvršavaju u obrnutom redosledu od njihovog definisanja, odnosno LIFO (Last-In, First-Out).
package main
import "fmt"
func main() {
defer fmt.Println("prvi") // Definisano poslednje
defer fmt.Println("drugi") // Definisano pretposlednje
defer fmt.Println("treći") // Definisano prvo
}
Kao rezultat, pri izvršavanju ovog koda, biće prikazano:
treći
drugi
prvi
Pri izlasku iz opsega (funkcije) u kojoj je deklarisan defer, odložene funkcije se pozivaju u obrnutom redosledu. Ovo je korisno za oslobađanje resursa, zatvaranje fajlova, otključavanje mutexa i druge operacije čišćenja.