Sobes.tech
Middle

Go dilində defer operatoru nədir?

sobes.tech Süni İntellekt

AI-dan cavab

defer operatoru funksiyaları və ya metodları gecikdirilmiş şəkildə icra etmək üçün istifadə olunur. defer ilə işarələnmiş funksiyalar, onları əhatə edən funksiyadan çıxmadan dərhal əvvəl icra olunur.

defer-in işləmə prinsipləri:

  • Cari funksiyadan çıxış zamanı, normal icra və ya panik olmasına baxmayaraq, icra olunur.
  • Eyni funksiyada bir neçə defer, LIFO (Last-In, First-Out) sırasına görə icra olunur.
  • Resursların təmizlənməsi üçün faydalıdır, məsələn, faylları və ya şəbəkə bağlantılarını bağlamaq.

İstifadə nümunəsi:

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("Fayl açılır.")

	file, err := os.Open("example.txt")
	if err != nil {
		// Xəta ilə işləmə
		return
	}

	// Gecikdirilmiş fayl bağlama
	defer file.Close()
	defer fmt.Println("Fayl bağlanacaq.") // Bu defer ilk icra olunacaq (LIFO)

	fmt.Println("Fayl işlənir...")

	// Fayl ilə əlavə iş
}

Proqramın çıxışı:

Fayl açılır.
Fayl işlənir...
Fayl bağlanacaq.