Два defer и переприсвоения

Что выведетJuniorбесплатно05-t002

В main объявлены две переменные. Для первой defer регистрируют сразу, для второй — уже после того как обеим присвоили новые значения. В каком порядке и с какими значениями выведутся оба defer?

main.gogo
1package main2 3import "fmt"4 5func main() {6	var (7		a int = 18		b int = 29	)10	defer fmt.Println(a)11	a = 112	b = 413	defer fmt.Println(b)14}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.