首頁 > 後端開發 > Golang > 如何正確使用和導入Go內部包?

如何正確使用和導入Go內部包?

Patricia Arquette
發布: 2024-12-17 14:13:10
原創
849 人瀏覽過

How Can I Properly Use and Import Internal Packages in Go?

了解 Go 中內部套件的用法

組織 Go 程式碼時,內部套件提供了在專案內維護模組化和封裝性的方法。在給定的程式碼結構中,在「project」目錄中建立「內部」套件。

從外部匯入中排除內部套件

但是,如上所述,無法從其父目錄以外的內部套件匯入。這是因為內部包不會導出,只能從專案的源代碼樹中存取。從專案目錄外部的外部匯入僅適用於位於 $GOPATH/src 樹中的套件。

解決導入問題

要解決導入問題,項目目錄可以放在$GOPATH/src下。這可確保位於「project/main.go」的主套件可以存取內部套件。

Go v1.11 及以上版本的模組支援

或者,隨著Go v1.11 及更高版本中引入模組,您可以透過建立go .mod 檔案來定義專案的模組。此檔案指定專案中每個模組的位置。以下是如何設定的範例:

project/
    go.mod
    main.go
    
    internal/
        bar/
            bar.go
            go.mod
        
        foo/
            foo.go
            go.mod
登入後複製

go.mod for project/internal/bar:

module bar

go 1.14
登入後複製

bar。去:

package bar

import "fmt"

// Bar prints "Hello from Bar"
func Bar() {
    fmt.Println("Hello from Bar")
}
登入後複製

go.mod項目/內部/foo:

module foo

go 1.14
登入後複製

foo.go:

package foo

import "fmt"

// Foo prints "Hello from Foo"
func Foo() {
    fmt.Println("Hello from Foo")
}
登入後複製

main.go:

package main

import (
    "project/internal/bar"
    "project/internal/foo"
)

func main() {
    bar.Bar()
    foo.Foo()
}
登入後複製

在此設定中,go.mod 檔案定義了每個內部的模組路徑和依賴資訊 包裹。 Replace 語句確保 Go 知道在哪裡找到內部包,即使它們位於標準 $GOPATH/src 樹之外。

透過這種方法,您可以輕鬆地使用內部包組織程式碼並無縫存取它們來自主包,在您的專案中提供模組化和可訪問性。

以上是如何正確使用和導入Go內部包?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板