Sobes.tech
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.