2201
#golang
What will be printed?
package main
import (
"fmt"
)
func main() {
foo := 1
defer fmt.Println(foo)
Up(&foo)
defer fmt.Println(foo)
}
func Up(bar *int) {
*bar = *bar + 1
}
Answer:
2
1
And now - wrapped #defer with a func:
package main
import (
"fmt"
)
func main() {
foo := 1
defer func() {
fmt.Println(foo)
}()
Up(&foo)
defer func() {
fmt.Println(foo)
}()
}
func Up(bar *int) {
*bar = *bar + 1
}
Answer:
2
2