Sobes.tech
Middle

Go-догу кечиктирилген функциялар (defer) кайсы тартипте ишке ашырылат?

sobes.tech AI

AIден жооп

Кийин калтырылган функциялар, алардын аныкталган тартибинен тескерисинче, яъни LIFO (Last-In, First-Out) тартибинде ишке ашырылат.

package main

import "fmt"

func main() {
	defer fmt.Println("биринчи") // Соңку аныкталган
	defer fmt.Println("экинчи") // Алдынкы аныкталган
	defer fmt.Println("үчүнчү") // Биринчи аныкталган
}

Натыйжада, бул кодду ишке ашырганда, төмөнкүдөй чыгуу болот:

үчүнчү
экинчи
биринчи

defer менен жарыяланган функциялар, алардын аныкталган жеринен чыгуу учурунда, тескерисинче тартипте чакырылат. Бул ресурстарды бошотуу, файлдарды жабуу, mutexтерди ачуу жана башка тазалоо операциялары үчүн пайдалуу.