首頁 > 後端開發 > Golang > 如何使用帶有模組的內部套件來有效組織Go程式碼?

如何使用帶有模組的內部套件來有效組織Go程式碼?

Susan Sarandon
發布: 2024-12-25 14:12:24
原創
891 人瀏覽過

How to Effectively Organize Go Code Using Internal Packages with Modules?

了解內部套件及其用法

問題:

如何使用「內部」套件有效地組織 Go代碼?

初始問題:

儘管將項目放在GOPATH 之外,但從main.go 導入內部包會失敗,除非使用相對路徑(例如“ ./internal/foo|bar”)。

模組介紹:

隨著Go中模組的介紹v1.11 以上版本,不再需要將項目放入 $GOPATH/src 中。相反,您需要建立一個 go.mod 檔案來指定每個模組的位置。

範例:

考慮以下項目結構:

project/
  go.mod
  main.go

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

go.mod:

go.mod >內部包的go.mod檔案很簡單:
module bar

go 1.14
登入後複製
module foo

go 1.14
登入後複製

內部套件中的程式碼:

// bar.go
package bar

import "fmt"

// Bar prints "Hello from Bar"
func Bar() {
    fmt.Println("Hello from Bar")
}

// foo.go
package foo

import "fmt"

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

main.go:

// main.go
package main

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

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

main.go:

main.go:
module project

go 1.14

require internal/bar v1.0.0
replace internal/bar => ./internal/bar
require internal/foo v1.0.0
replace internal/foo => ./internal/foo
登入後複製

項目go.mod檔:

    項目go.mod 檔案通知Go 內部包及其位置的資訊:
  • 重要說明:

require 部分的名稱是供Go 內部使用,可以任意。 require 部分的版本號在此上下文中並不重要。

替換行指定 Go 可以在哪裡找到內部套件。

Hello from Bar
Hello from Foo
登入後複製

執行:現在將運行main.go 檔案print:這個範例示範如何使用模組在Go專案中有效地使用內部包。

以上是如何使用帶有模組的內部套件來有效組織Go程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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