Sobes.tech
Senior

რა არის defer-ი Go-ში? რა გამოიტანოს ორი 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

ანუ, პირველ რიგში შესრულდება ძირითადი კოდი, შემდეგ დაგვიანებული გამოძახებები逆მხარით.