Middle
Kādā secībā tiek izpildītas atliktās funkcijas (defer) Go?
sobes.tech AI
Atbilde no AI
Atliktās funkcijas tiek izpildītas pretējā secībā, kādā tās tika definētas, tas ir, LIFO (Last-In, First-Out).
package main
import "fmt"
func main() {
defer fmt.Println("pirmais") // Definēts pēdējais
defer fmt.Println("otrais") // Definēts pirms pēdējā
defer fmt.Println("trešais") // Definēts pirmais
}
Rezultātā, izpildot šo kodu, tiks parādīts:
trešais
otrais
pirmais
Iziet no scope (funkcijas), kurā tika deklarēts defer, atliktās funkcijas tiek izsauktas pretējā secībā. Tas ir noderīgi resursu atbrīvošanai, failu aizvēršanai, mutexu atbloķēšanai un citām tīrīšanas operācijām.