runtime.Goexit() завершает текущую горутину. Все deferred функции выполняются, но горутина не возвращает значения. Отличие от return: Goexit работает из любой глубины вызова, return — только из текущей функции. Используется в testing.T.FailNow() — прерывает тест но defers работают. Не путай с os.Exit — тот убивает весь процесс без defers. Goexit из main горутины завершает программу после defers, аналогично return из main.
Как работает runtime.Goexit?
Middle
193 просмотровAFK Offer AI
Что выведет: x := 1; defer fmt.Println(x); x = 2?