Senior
36
// Сұрақ 2. Экранға не шығарады package main import "fmt" func main() { { defer fmt.Println(1) } defer fmt.Println(2) }
Сұралған компаниялар
МВидео/эльдорадо
AI-дан жауап
sobes.tech AI
Бағдарлама мынаны шығарады:
2
1
Түсіндірме:
Go тілінде defer шақырулары функциядан шығу кезінде кешіктіріледі және кері тәртіпте орындалады — шақырулар стегі.
Берілген кодта:
{
defer fmt.Println(1)
}
defer fmt.Println(2)
Бірінші defer блок ішінде орналасқан, бірақ блок жеке функция емес, сондықтан defer тіркеледі және main-дан шығу кезінде орындалады.
defer тіркеу тәртібі:
defer fmt.Println(1)defer fmt.Println(2)
main-дан шығу кезінде олар кері тәртіпте орындалады:
- Алдымен
fmt.Println(2) - Содан кейін
fmt.Println(1)
Сондықтан экранға шығарылады:
2
1