Junior — Senior
67
Понимание порядка выполнения отложенных вызовов
Companies where asked:
Miatel
Task condition
Нужно определить, какой результат выведет программа. Разберитесь, как работают defer‑выражения в Go и влияет ли их порядок на возвращаемое значение функции.
package main
import (
"fmt"
"math"
)
func foo() (k float64) {
i := 36.0
defer func() { k = math.Sqrt(k) }()
defer func() { k -= 11 }()
defer func() { i += 10 }()
return 1
}
func main() {
fmt.Println(foo())
}