У меня следующий исходный код:
package main
func test(x int) (func(), func()) {
return func() {
println(x)
x += 10
}, func() {
println(x)
}
}
func main() {
a, b := test(100)
a()
b()
}
Результат будет
100
110
Если я отредактирую код следующим образом
package main
func test(x int) (func(), func()) {
return func() {
println(x)
}, func() {
println(x)
x += 10
}
}
func main() {
a, b := test(100)
a()
b()
}
Результат будет
100
100
Я ожидаю, что последний результат будет следующим, но это не так, почему?
110
100