Sobes.tech
Junior — Middle

Бир функцияда бир нече defer операторлорду колдонуу мүмкүнбү?

sobes.tech AI

AIден жооп

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

Мисал:

func мисал() {
    defer fmt.Println("Биринчи defer")
    defer fmt.Println("Экинчи defer")
    fmt.Println("Функциянын ичинде")
}

// Натыйжа төмөндөгүчө болот:
// Функциянын ичинде
// Экинчи defer
// Биринчи defer