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

Նշանակում է, որ նախ կատարվում է հիմնական կոդը, ապա հետաձգված կանչերը հակառակ հերթականությամբ։