Sobes.tech
Middle

რა არის defer ოპერატორი ენის Go-ში?

sobes.tech AI

პასუხი AI-სგან

defer ოპერატორი გამოიყენება ფუნქციის ან მეთოდის დაგვიანებული შესრულებისთვის. defer-ით აღნიშნული ფუნქციები ან მეთოდები შესრულდება ზუსტად იმ ფუნქციის დასრულებამდე, რომელიც მათ შეიცავს.

defer-ის მუშაობის პრინციპები:

  • შესრულდება მიმდინარე ფუნქციიდან გამოსვლის დროს, იქნება ეს ნორმალური ან პანიკის გამო;
  • ერთ ფუნქციაში რამდენიმე defer შესრულდება LIFO (Last-In, First-Out) წესით;
  • სასარგებლოა რესურსების დასუფთავებისთვის, მაგალითად, ფაილების ან ქსელური კავშირების დახურვისთვის.

გამოყენების მაგალითი:

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("ფაილის გახსნა.")

	file, err := os.Open("example.txt")
	if err != nil {
		// შეცდომის დამუშავება
		return
	}

	// დაგვიანებული ფაილის დახურვა
	defer file.Close()
	defer fmt.Println("ფაილი დაიხურება.") // ეს `defer` შესრულდება პირველად (LIFO)

	fmt.Println("ფაილის დამუშავება...")

	// დამატებითი სამუშაო ფაილთან
}

პროგრამის გამოყვანა:

ფაილი იხსნება.
ფაილის დამუშავება...
ფაილი დაიხურება.