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