go - Golang 中的闭包 - 不显示字符串

标签 go

我一直在关注 golang 中的很多关于 Closures 的教程,但仍然无法真正实现以下内容

我有一个名为“greeting”的函数,它将 name 作为输入并在其中包含一个 closure,它将给出完整的问候消息

func greeting(name string) func() string {
    fullGreeting := ""
    return func() string {
        var message = "Welcome to Closures " + name
        fullGreeting = message
        return fullGreeting
    }
}

func main() {
    fmt.Println(greeting("Arun"))
}

我期待它打印 Welcome to Closures Arun 而它只打印方法值 0x48b660

最佳答案

编辑主函数
func main() {
    fmt.Println(greeting("Arun")())
}

关于go - Golang 中的闭包 - 不显示字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53151580/

相关文章:

json - 处理json响应中的NULL值

go - 为什么 channel 没有成为结构的成员

go - 将 map 分配给 Golang 中的 map

go - 填充包含 slice 的结构

go - 使用 bytes.Buffer 与使用 *bytes.NewBuffer 时 json.Unmarshal 的区别

pointers - 如何将指针分配给 Go map

google-app-engine - 为什么我的随机数没有更新?

go - 使用什么版本的 Go 来编译依赖项?

go - 无法读取JSON Cookie

go - 我如何在 func 中声明一片 chan( channel )