1 回答

TA貢獻1829條經(jīng)驗 獲得超7個贊
您可以將子包與Go 模塊一起使用。Go 模塊是 Go 的新依賴管理解決方案——它們讓你在外部工作,GOPATH
并讓你管理你擁有的每個依賴的確切版本。
模塊還允許您定義一組具有相同導入路徑前綴的 Go 包。當您編寫函數(shù)時,這使您可以在模塊中導入其他包。
您正在部署的功能需要位于模塊的根目錄。
這是一個示例文件結構以及如何導入包:
.
├── cmd
│? ?└── main.go # Useful for testing. Can import and setup your function.
├── function.go # Can import example.com/foo/helperpackage
├── function_test.go
├── go.mod # module example.com/foo
└── helperpackage
? ? └── helper.go
此設置在 中具有您的功能function.go并由 測試function_test.go。它們位于名為example.com/foo. helperpackage可以通過function.go使用導入example.com/foo/helperpackage。
這也有一個cmd目錄,這可能有助于本地測試。您可以導入example.com/foo并啟動將您的函數(shù)注冊為 HTTP 處理程序的 HTTP 服務器。例如:
package main
import (
? ? "log"
? ? "net/http"
? ? "example.com/foo"
)
func main() {
? ? http.Handle("/HelloHTTP", foo.HelloHTTP)
? ? log.Fatal(http.ListenAndServe(":8080", nil))
}
注意:您可以使用供應商目錄來獲得相同的結果。但是,您的函數(shù)導入的所有包都需要位于 vendor 目錄中(具有完整的導入路徑),這可行,但維護起來很麻煩。將子包復制到供應商目錄中并不常見,因此我不推薦這樣做。
- 1 回答
- 0 關注
- 126 瀏覽
添加回答
舉報