Middle
Go dilinde defer operatörü nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
defer operatörü, fonksiyon veya yöntemin ertelenmiş yürütülmesi için kullanılır. defer ile işaretlenmiş fonksiyonlar, onları içeren fonksiyondan çıkmadan hemen önce çalıştırılır.
defer'in çalışma prensipleri:
- Mevcut fonksiyondan çıkışta, normal yürütme veya panik olsun, çalıştırılır.
- Aynı fonksiyonda birden fazla
defer, LIFO (Last-In, First-Out) sırasıyla çalıştırılır. - Kaynakları temizlemek için kullanışlıdır, örneğin dosya veya ağ bağlantılarını kapatmak.
Kullanım örneği:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Dosya açılıyor.")
file, err := os.Open("example.txt")
if err != nil {
// Hata işleme
return
}
// Ertelenmiş dosya kapatma
defer file.Close()
defer fmt.Println("Dosya kapatılacak.") // Bu defer ilk çalışır (LIFO)
fmt.Println("Dosya işleniyor...")
// Dosya ile daha fazla çalışma
}
Program çıktısı:
Dosya açılıyor.
Dosya işleniyor...
Dosya kapatılacak.