2 回答

TA貢獻2012條經(jīng)驗 獲得超12個贊
這實際上有點微妙,讓我困惑了一秒鐘?!懊孛堋笔且粋€函數(shù)必須在調(diào)用它之前評估它的所有參數(shù)。所以它調(diào)用函數(shù)兩次以獲得 9 和 20,但其中一個評估恰好調(diào)用 Println。
為什么語言在調(diào)用函數(shù)之前評估其參數(shù)是相當簡單的(當涉及副作用時,這種部分應用程序很棘手,并且主要保留給函數(shù)式語言),但是隱藏具有副作用的函數(shù),例如在函數(shù)評估中打印應該可能只是為了清楚起見而氣餒。
代碼可能更直接:
func main() {
arg1,arg2 := pow(3,2,10),pow(3,3,20)
fmt.Println(arg1, arg2)
}

TA貢獻1966條經(jīng)驗 獲得超4個贊
fmt.Println() 在調(diào)用之前需要它的所有參數(shù)。
所以,您有 9,但是當您獲得另一個值 (20) 時,控制臺會打印其他內(nèi)容。
是否就像這樣:
package main
import "fmt"
func main() {
fmt.Println(9, f())
}
func f() int {
fmt.Println("This gets printed before")
return 20
}
輸出:
This gets printed before
9 20
- 2 回答
- 0 關(guān)注
- 226 瀏覽
添加回答
舉報