Выведет "oops". После panic выполняются deferred функции. recover() в defer ловит panic и возвращает значение ("oops"). "after panic" никогда не выполнится — panic прерывает нормальное выполнение. Функция возвращается нормально после recover. Если бы recover не было — panic пробросилась бы выше и крашнула программу.
Что выведет: func f() { defer func() { fmt.Println(recover()) }(); panic("oops"); fmt.Println("after panic") }?
Junior
163 просмотровAFK Offer AI
Как спроектировать job queue с приоритетами на Go?