天天看點

golang中vendor引起的相同類型,但是确提示類型不一樣問題

問題:

在項目中,使用了自己基于開源項目gin進行二次開發的架構,在注冊路由的時候提示了一個錯誤資訊,如下:

cannot use func literal (type func(*"github.com/dazhenghu/cms/vendor/github.com/gin-gonic/gin".Context)) as type "github.com/gin-gonic/gin".HandlerFunc in argument to indexInstace.Controller.Get

分析:

從提示中可以看出,雖然都是 func(*Context) 類型(注:HandlerFunc類型就是func(*Context),可自行到gin源碼中檢視),但是兩者的包不同,很明顯,前者是我的項目中的vendor下的包,提示這一包路徑不一緻問題,應該是項目加載的包不同導緻

解決:

通過執行添加依賴指令:govendor add github.com/dazhenghu/ginApp/controller,即将自己開發的架構也先加到vendor中管理,再次執行,就不報這個錯誤了