Middle
Defer nedir ve ne için kullanılır? Aynı fonksiyon içinde birden fazla defer çağrısı varsa, bunlar hangi sırayla çalıştırılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, defer anahtar kelimesi, bir fonksiyonun çağrısını erteler; bu fonksiyon, çevreleyen fonksiyon tamamlandıktan sonra, ancak geri dönüşünden önce çalıştırılır. Bu, kaynakları serbest bırakmak, dosyaları kapatmak, mutexleri kilidini açmak ve diğer temizlik işlemleri için kullanışlıdır.
Bir fonksiyonda birden fazla defer çağrısı varsa, bunlar bildirim sırasının tersine göre (yığın sırası) çalıştırılır. Yani, en son bildirilen defer önce çalıştırılır.
Örnek:
func örnek() {
defer fmt.Println("İlk defer")
defer fmt.Println("İkinci defer")
fmt.Println("Fonksiyon gövdesinde")
}
// Çıktı şu şekilde olur:
// Fonksiyon gövdesinde
// İkinci defer
// İlk defer