Sobes.tech
Middle

Defer nədir və nə üçün istifadə olunur? Əgər eyni funksiyada bir neçə defer çağırışı varsa, onlar hansı ardıcıllıqla icra olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, defer açar sözü, bir funksiyanı gecikdirilmiş çağırış üçün istifadə olunur: bu, ətrafdakı funksiyanın tamamlanmasından sonra, lakin onun geri qaytarılmasından əvvəl icra olunacaq. Bu, resursların azad olunması, faylların bağlanması, mutexlərin açılması və digər təmizləmə əməliyyatları üçün əlverişlidir.

Əgər bir funksiyada bir neçə defer çağırışı varsa, onlar elan olunma ardıcıllığının tərsinə icra olunur (yığım ardıcıllığı). Yəni, ən son elan olunan defer ilk icra olunacaq.

Misal:

func nümunə() {
    defer fmt.Println("Birinci defer")
    defer fmt.Println("İkinci defer")
    fmt.Println("Funktsiyanın bədənində")
}
// Nəticə belə olacaq:
// Funktsiyanın bədənində
// İkinci defer
// Birinci defer