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.