Именованный результат: параметр defer и чтение по имени

Что выведетMiddleбесплатно05-t012

Функция с именованным результатом передаёт его как аргумент в defer, а в теле defer ещё читает и меняет сам именованный результат. Что будет выведено?

main.gogo
1package main2 3import "fmt"4 5func main() {6	fmt.Println(Compute())7}8 9func Compute() (res int) {10	defer func(n int) {11		fmt.Printf("param copy: %d\n", n)12		fmt.Printf("after return: %d\n", res)13		res *= 1014	}(res)15 16	res = 717	return res18}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.