Sobes.tech
Senior

Go'da defer nima? Ikki defer bilan kod nima chiqaradi?

sobes.tech AI

AIdan javob

Go tilida, defer kalit so'zi funksiyani kechiktirish uchun ishlatiladi: u atrofdagi funksiyani tugatgandan so'ng, lekin uning qaytishidan oldin bajariladi.

Agar bir funksiyada bir nechta defer bo'lsa, ular e'lon qilingan tartibga qarshi tartibda bajariladi (chaqiriq steki).

Misol:

package main

import "fmt"

func main() {
    defer fmt.Println("Birinchi defer")
    defer fmt.Println("Ikkinchi defer")
    fmt.Println("Asosiy kod")
}

Chiqish quyidagicha bo'ladi:

Asosiy kod
Ikkinchi defer
Birinchi defer

Ya'ni, avvalo asosiy kod bajariladi, so'ngra kechiktirilgan chaqiriqlar teskari tartibda bajariladi.