Middle
Ի՞նչ է defer-ը և ինչու է այն օգտագործվում: Որ կարգով են կատարվում defer-զանգումները, եթե դրանք մի քանի են մեկ ֆունկցիայում:
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, defer բանալի բառը օգտագործվում է հետաձգված կանչի համար. այն կիրականացվի շրջապատող ֆունկցիայի ավարտից հետո, բայց նրա վերադարձից առաջ: Սա հարմար է ռեսուրսների ազատման, ֆայլերի փակման, mutex-ների բացման և այլ մաքրման գործողությունների համար:
Եթե մեկ ֆունկցիայում մի քանի defer կանչեր կան, դրանք կատարվում են հակառակ հերթականությամբ, ինչպես հայտարարվել է (պատյանային կարգ): Այսինքն, վերջին հայտարարված defer-ը կատարվում է առաջինը:
Օրինակ:
func օրինակ() {
defer fmt.Println("Առաջին defer")
defer fmt.Println("Երկրորդ defer")
fmt.Println("Ֆունկցիայի մարմնում")
}
// Արդյունքը կլինի՝
// Ֆունկցիայի մարմնում
// Երկրորդ defer
// Առաջին defer