围棋之旅#23:package mainimport ( "fmt" "math")func pow(x, n, lim float64) float64 { if v := math.Pow(x, n); v < lim { return v } else { fmt.Printf("%g >= %g\n", v, lim) } // can't use v here, though return lim}func main() { fmt.Println( pow(3, 2, 10), pow(3, 3, 20), )}结果是:27 >= 209 20如果我注释掉该return v行,结果是:27 >= 2010 20为什么会发生这种情况?为什么第一次pow()调用的结果不等于27 >= 20和10?
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
您向第一次调用传递了 10 的限制,因此返回的数字是 10 而不是 20。
将其更改为
func main() {
fmt.Println(
pow(3, 2, 20),
pow(3, 3, 20),
)
}
删除该return v行时,您将看到以下输出:
27 >= 20
20 20
- 1 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消