首頁 > 後端開發 > Golang > 主體

GoLang自訂套件導入問題

王林
發布: 2024-02-12 21:54:08
轉載
873 人瀏覽過

GoLang自訂套件導入問題

php小編新一在這裡為大家介紹一下GoLang中的一個常見問題:自訂套件匯入問題。在Go語言開發中,我們經常需要使用自訂的套件來實作一些特定的功能。然而,在匯入自訂套件時,有時會出現一些問題,例如套件找不到、套件衝突等。本文將詳細解答這些問題,並提供解決方案,幫助開發者更好地處理自訂套件匯入問題,提高開發效率。

問題內容

我正在學習 golang,遇到了一個問題。

我使用 go mod init main 建立了 mod 檔

接下來我建立了控制器和路由資料夾,如下所示:

├── contollers
│   └── users.controller.go
├── routes
│   ├── index.go
│   └── users.routes.go
├── vendor
│   └── modules.txt
├── go.mod
├── go.sum
└── main.go
登入後複製

在 mod 檔案中,模組看起來像這樣 模組main

現在,當我嘗試將控制器匯入路由器時,它給了我導入錯誤。

我一直在做以下事情。 嘗試 - 1

import (
    "$gopath/controllers"

    "github.com/gin-gonic/gin"
)
登入後複製

它給了 invalid import path: "$gopath/controllers"syntax 錯誤

嘗試 - 2

import (
    "$gopath/main/controllers"

    "github.com/gin-gonic/gin"
)
登入後複製

同樣的錯誤

嘗試 - 3

import (
    "main/controllers"

    "github.com/gin-gonic/gin"
)
登入後複製

控制器.go

package controllers;

import (
    "fmt"

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

func healthcheck() gin.handlerfunc {
    return func (c *gin.context)  {
        fmt.println("reached controller")
    }
}
登入後複製

路由器.go

package routes

import (
    "bootcamp.com/server/controllers"

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

func UserRouters(inComingRoutes *gin.Engine) {
    inComingRoutes.GET("/api/health", controllers.HealthCheck());
}
登入後複製

拋出這樣的錯誤,無法匯入main/controllers(沒有必要的模組提供套件「main/controllers」)

#我已經被這個問題困擾了 3-4 個小時,有人可以建議我如何將該控制器匯入到我的路線中。

提前致謝。

解決方法

  1. 透過編輯go.mod修改模組路徑:
- module main
+ module example.com/hello
登入後複製
  • 修改導入路徑:
  • import (
    -     "main/controllers"
    +     "example.com/hello/controllers"
    
          "github.com/gin-gonic/gin"
      )
    登入後複製
  • controller.go(刪除尾隨的 ;):
  • - package controllers;
    + package controllers
    登入後複製
    1. 將目錄 contollers 重新命名為 controllers 以符合套件名稱(缺少 r)。

    2. 刪除 vendor 資料夾。

    說明

    1. main在go中有特殊的意義。引自 golang 規範

    一個完整的程式是透過將一個名為主包的單一未導入包與其導入的所有包以傳遞方式連結起來而創建的。主包必須具有套件名稱 main 並聲明一個不帶參數且不傳回值的函數 main。

    1. 不帶點的導入路徑是為標準函式庫和 go 工具鏈保留的。請參閱cmd/go:保留不帶點的模組名稱的文件

    以上是GoLang自訂套件導入問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    相關標籤:
    來源:stackoverflow.com
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    最新問題
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!