Sobes.tech
Middle

Go'da kechiktirilgan funksiyalar (defer) qanday tartibda bajariladi?

sobes.tech AI

AIdan javob

Erteleme funksiyalar, ularning ta'riflangan tartibiga qarab, ya'ni LIFO (Last-In, First-Out) bo'yicha bajariladi.

package main

import "fmt"

func main() {
	defer fmt.Println("birinchi") // Oxirgi ta'riflangan
	defer fmt.Println("ikkinchi") // Oldingi ta'riflangan
	defer fmt.Println("uchinchi") // Birinchi ta'riflangan
}

Natijada, bu kodni bajarish natijasida quyidagicha chiqariladi:

uchinchi
ikkinchi
birinchi

defer bilan e'lon qilingan funksiyalar, ularning ta'riflangan joyidan chiqish paytida, teskari tartibda chaqiriladi. Bu resurslarni bo'shatish, fayllarni yopish, mutexlarni ochish va boshqa tozalash operatsiyalari uchun foydalidir.