我想了解 Go 中的高階函數(shù)。我有以下程序:package mainimport "fmt"func caller(foo func(string) string) { result := foo("David") fmt.Println(result)}bar := func(name string) string { return "Hello " + name}func main(){ caller(bar)}當(dāng)我運(yùn)行它時(shí):去運(yùn)行 higher_order_functions.go它給出了以下錯(cuò)誤:# command-line-arguments./higher_order_functions.go:10:1: syntax error: non-declaration statement outside function body./higher_order_functions.go:11:5: syntax error: unexpected return, expecting )我期待輸出:“你好大衛(wèi)”
2 回答

鴻蒙傳說(shuō)
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
短變量聲明在函數(shù)體之外不起作用,
您的問(wèn)題的有效解決方案可能如下所示,
package main
import "fmt"
func main() {
? ? caller(bar)
}
func caller(foo func(string) string) {
? ? result := foo("David")
? ? fmt.Println(result)
}
func bar(s string) string {
? ? return "Hello " + s
}
- 2 回答
- 0 關(guān)注
- 124 瀏覽
添加回答
舉報(bào)
0/150
提交
取消