Вопрос: Как работает defer с изменяемыми переменными (когда вычисляются аргументы)?

Go Junior Без компании
Вопрос: Как работает defer с изменяемыми переменными (когда вычисляются аргументы)?
Ответы
Аргументы defer вычисляются сразу, а выполнение функции откладывается. ```go package main import "fmt" func main() { x := 10 defer fmt.Println("x in defer:", x) // аргумент вычислен сейчас x = 20 fmt.Println("x now:", x) } ``` Если нужно увидеть финальное значение — передайте указатель или используйте замыкание. ```go x := 10 defer func() { fmt.Println("x final:", x) }() x = 20 ```