Sobes.tech
Senior

Goда defer эмне? Эки defer менен код эмне чыгарат?

sobes.tech AI

AIден жооп

Go тилинде, defer ачкыч сөзү функцияны кечиктирүү үчүн колдонулат: ал чөйрөлүү функция аяктагандан кийин, бирок анын кайтарылышы алдында ишке ашырылат.

Эгер бир функцияда бир нече defer болсо, алар декларацияланган тартипке карата тескерисинче ишке ашырылат (чалуу стек).

Мисал:

package main

import "fmt"

func main() {
    defer fmt.Println("Биринчи defer")
    defer fmt.Println("Экинчи defer")
    fmt.Println("Негизги код")
}

Чыгуу мындай болот:

Негизги код
Экинчи defer
Биринчи defer

Мындайча айтканда, биринчи негизги код ишке ашырылат, андан кийин кечиктирилген чакыруулар тескерисинче тартипте ишке ашырылат.