您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Golang Gin“ c.Param未定义(类型* gin.Context没有字段或方法Param)”

Golang Gin“ c.Param未定义(类型* gin.Context没有字段或方法Param)”

编辑:OP具有旧版本的软件包的“由Glide创建的供应商目录”。并通过删除文件解决了问题(更新供应商软件包)。

注意go get请勿签出或更新存储在供应商目录中的代码

c.Param(key)是的快捷方式c.Params.ByName(key),请参阅c.Param(key)文档:

// Param returns the value of the URL param.
// It is a shortcut for c.Params.ByName(key)
//        router.GET("/user/:id", func(c *gin.Context) {
//            // a GET request to /user/john
//            id := c.Param("id") // id == "john"
//        })
func (c *Context) Param(key string) string {
  return c.Params.ByName(key)
}

您需要更新 github.com/gin-gonic/gin软件包,请尝试:

go get -u github.com/gin-gonic/gin

并确保没有任何vendor,并尝试删除所有文件和供应商目录,除了main.go然后go build(或更新您的供应商包)。

您的代码go1.7以下方面运行良好:

package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()

    router.GET("/user/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(http.StatusOK, "Hello %s", name)
    })

    router.Run(":8080")
}

在浏览器中打开http://127.0.0.1:8080/user/World 输出

Hello World
Go 2022/1/1 18:17:56 有354人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶