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