为了账号安全,请及时绑定邮箱和手机立即绑定

转到高阶函数

转到高阶函数

Go
慕沐林林 2023-05-04 16:04:54
我想了解 Go 中的高阶函数。我有以下程序: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)}当我运行它时:去运行 higher_order_functions.go它给出了以下错误:# 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 )我期待输出:“你好大卫”
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

:= 赋值在函数体之外不起作用。

您必须改用 var bar = 。



查看完整回答
反对 回复 2023-05-04
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

短变量声明在函数体之外不起作用,

您的问题的有效解决方案可能如下所示,

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

}


查看完整回答
反对 回复 2023-05-04
  • 2 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信