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