Middle
Go'da defer nedir ve ne zaman çağrılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, defer anahtar kelimesi, bir fonksiyonun çağrılmasını ertelemek için kullanılır: bu fonksiyon, çevreleyen fonksiyon tamamlandıktan sonra, ancak çıkmadan ö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, hata veya panik durumlarında bile gerçekleşmesini sağlar.
Örnek:
func readFile() {
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close() // dosya fonksiyon sonunda kapanacaktır
// dosya ile çalışma
}
Burada, file.Close() otomatik olarak readFile'den çıkarken çağrılır, fonksiyon nasıl sona ererse ersin.