2 回答

TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊
這只是意味著該函數(shù)正在返回一個不帶參數(shù)并返回整數(shù)的函數(shù)。那就是
... func() int
你簽名的一部分在說。
您收到的錯誤是因為您 fmt.Println 無法打印函數(shù)。為了證明這一點,你可以看到如果你打電話,你會得到同樣的錯誤,
func main() {
fmt.Println(foo)
}
func foo() int {
return 1
}
如果你這樣調(diào)用你的函數(shù),可能會更清楚地看到發(fā)生了什么。
func main() {
myIncrementer := incrementer()
fmt.Println(myIncrementer()) // Prints 1
}
你在哪里創(chuàng)建增量器,它是一個函數(shù),然后調(diào)用返回 1 的函數(shù)函數(shù)。

TA貢獻(xiàn)1825條經(jīng)驗 獲得超4個贊
簡單地說,由于incrementer()
返回一個函數(shù),它返回的函數(shù)也必須被調(diào)用。你可以這樣做:
functionFoo := incrementer() fmt.Println(functionFoo())
或者這種簡寫的方式:
fmt.Println(incrementer()())
這實現(xiàn)了同樣的事情,你只是立即執(zhí)行返回的函數(shù)incrementer()
。
- 2 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報