Go 高阶函数
我试图理解Go中的高阶函数。我有以下计划:Go 高阶函数,go,Go,我试图理解Go中的高阶函数。我有以下计划: package main import "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) } 当我运行它时: 去运行
package main
import "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)
}
当我运行它时:
去运行高阶函数。去
它给出了以下错误:
# 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 )
我期待输出:
“你好,大卫”
:=赋值在函数体之外不起作用
您必须使用var bar=来代替。短变量声明在函数体之外不起作用,下面是关于它的更多信息 您的问题的有效解决方案可能如下所示:
主程序包
输入“fmt”
func main(){
来电者(酒吧)
}
func调用者(foo func(字符串)字符串){
结果:=foo(“大卫”)
fmt.Println(结果)
}
函数条(s字符串)字符串{
返回“Hello”+s
}