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 關注
- 267 瀏覽
添加回答
舉報
0/150
提交
取消