Middle
Defer რა არის და რა მიზნით გამოიყენება? თუ ერთ ფუნქციაში რამდენიმე defer-ი არსებობს, ისინი რომელ წესით შესრულდებიან?
sobes.tech AI
პასუხი AI-სგან
Go dilinde, 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:
// Funtksiyanın bədənində
// İkinci defer
// Birinci defer