我正在嘗試在基于Gin的Web服務器的路由中使用外部(非匿名)函數,如下所示:package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { router := gin.Default() router.GET("/hi/", Hi) router.Run(":8080")}func (c *gin.Context) Hi() { c.String(http.StatusOK, "Hello")}但是我得到2個錯誤:./main.go:13:23: undefined: Hi./main.go:18:6: cannot define new methods on non-local type gin.Context我想知道如何在我的端點處理程序中使用匿名函數和杜松子酒gonic?到目前為止,我發現的所有文檔都使用匿名函數。
2 回答

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
您只能為聲明該類型的同一包中的類型定義新方法。也就是說,不能向 添加新方法。gin.Context
您應該執行以下操作:
func Hi(c *gin.Context) {
...

瀟湘沐
TA貢獻1816條經驗 獲得超6個贊
package main
import "github.com/gin-gonic/gin"
func main() {
router := gin.Default()
router.GET("/hi", hi)
var n Node
router.GET("/hello", n.hello)
router.GET("/extra", func(ctx *gin.Context) {
n.extra(ctx, "surprise~")
})
router.Run(":8080")
}
func hi(c *gin.Context) {
c.String(200, "hi")
}
type Node struct{}
func (n Node) hello(c *gin.Context) {
c.String(200, "world")
}
func (n Node) extra(c *gin.Context, data interface{}) {
c.String(200, "%v", data)
}
- 2 回答
- 0 關注
- 461 瀏覽
添加回答
舉報
0/150
提交
取消