Middle
Go-da təxirə salınmış funksiyalar (defer) hansı ardıcıllıqla icra olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Gecikmiş funksiyalar, onların təyin olunduğu ardıcıllığın tərsinə, yəni LIFO (Last-In, First-Out) qaydasında icra olunur.
package main
import "fmt"
func main() {
defer fmt.Println("birinci") // Sonuncu təyin olunub
defer fmt.Println("ikinci") // Əvvəlki təyin olunub
defer fmt.Println("üçüncü") // Birinci təyin olunub
}
Nəticədə, bu kod icra olunduqda aşağıdakı çıxış alınacaq:
üçüncü
ikinci
birinci
defer ilə elan olunan funksiyalar, onların təyin olunduğu scope-dan çıxarkən tərsinə çağrılır. Bu, resursların sərbəst buraxılması, faylların bağlanması, mutexlərin açılması və digər təmizləmə əməliyyatları üçün faydalıdır.