登录
首页 >  Golang >  Go问答

Go 中如何返回带有参数的函数?

来源:stackoverflow

时间:2024-03-27 19:42:25 409浏览 收藏

从现在开始,努力学习吧!本文《Go 中如何返回带有参数的函数?》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我已经在 j​​s 中完成了此操作,不确定在 go 中是否可行,但我希望返回一个函数作为具有参数的函数的返回类型。

示例

func StoreTask(db *sql.DB) func(rw http.ResponseWriter, r *http.Request) {
    return func(rw, r) {
        fmt.Printf("This is the store task GET request %s", strings.Split(r.URL.Path, "/")[1])
        for _, val := range r.URL.Query() {
            fmt.Printf("Current val is: %s\n", val[0])
        }
    }
}

调用方式如下: thing := storetask(mydb) 然后我可以通过 http 库将其作为处理程序调用以供以后使用。


解决方案


您可以使用以下语法来做到这一点:

func StoreTask(db *sql.DB) func(http.ResponseWriter, *http.Request) {
  return func(wr http.ResponseWriter, r *http.Request) {
    fmt.Printf("This is the store task GET request %s", strings.Split(r.URL.Path, "/")[1])
    for _, val := range r.URL.Query() {
        fmt.Printf("Current val is: %s\n", val[0])
    }
  }
}

此处,storetask 返回一个获取 http 处理程序的函数,并且该处理程序还可以使用传递到 storetask 中的 db 参数。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>