Sobes.tech
Middle

Go tilida defer operatori nima?

sobes.tech AI

AIdan javob

defer operatori funksiyalar yoki metodlarni kechiktirilgan tarzda bajarish uchun ishlatiladi. defer bilan belgilangan funksiyalar, ularni o'z ichiga olgan funksiyadan chiqishdan oldin darhol bajariladi.

defer ning ishlash prinsiplari:

  • Hozirgi funksiyadan chiqishda, normal bajarilish yoki panik bo'lishidan qat'i nazar, bajariladi.
  • Bir funksiyada bir nechta defer LIFO (Last-In, First-Out) tartibida bajariladi.
  • Resurslarni tozalash uchun foydalidir, masalan, fayllarni yoki tarmoq ulanishlarini yopish.

Foydalanish misoli:

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("Fayl ochilmoqda.")

	file, err := os.Open("example.txt")
	if err != nil {
		// Xato bilan ishlash
		return
	}

	// Kechiktirilgan fayl yopilishi
	defer file.Close()
	defer fmt.Println("Fayl yopiladi.") // Bu defer birinchi bajariladi (LIFO)

	fmt.Println("Faylni qayta ishlash...")

	// Fayl bilan qo'shimcha ish
}

Dastur chiqishi:

Fayl ochilmoqda.
Faylni qayta ishlash...
Fayl yopiladi.