http://tour.golang.org/#23package 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但不是927 >= 20 20
2 回答
慕森王
TA贡献1777条经验 获得超3个赞
您预期结果的代码是
func main(){
fmt.Println(pow(3, 2, 10))
fmt.Println(pow(3, 3, 20))
}
“fmt.Println”中的所有“pow”函数被调用后,“fmt.Println”打印pows的结果
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
因为这两个调用pow(..)都在fmt.Println()被用作它的参数之前被评估过。
你所期望的将是输出
func main() {
fmt.Println(pow(3, 2, 10))
fmt.Println(pow(3, 3, 20))
}
- 2 回答
- 0 关注
- 223 浏览
添加回答
举报
0/150
提交
取消