亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以在一個 go 模塊中包含多個包嗎?如何?

我可以在一個 go 模塊中包含多個包嗎?如何?

Go
幕布斯6054654 2022-05-18 14:06:33
我有一個名為“tatata”的 Go 模塊。它只在我的機器上開發,因此它不包含模塊名稱中任何 URL 的任何路徑。如果我的模塊中只有一個main包,它可以正常工作。但是,如果我在模塊中創建兩個包,我會遇到一些問題。這是樹:./|  |- go.mod  |-src     |- main     |   | - main.go     |     |- api         | - api.go文件內容:go.modmodule tatatago 1.13main.gopackage mainimport "fmt"import "tatata/api"func main() {  fmt.Println("Hello world")  api.Test1()}api.gopackage apiimport "fmt"func Test1() {   fmt.Println("Testing API")}當我嘗試構建時,我發出go build ./src/main并收到以下錯誤: build tatata/src/main: cannot load tatata/api: malformed module path "tatata/api": missing dot in first path element現在,如果我嘗試放置一個虛擬點,例如將模塊重命名為tatata.com我會收到錯誤build tatata.com/src/main: cannot load tatata.com/api: cannot find module providing package tatata.com/api,因為顯然我的包/模塊在該 URL 中不可用。GOPATH為空,即未設置。問題:a) 什么是正確的方法,即在單個 Go 模塊中使用多個包時命名模塊和導入?b) 是否不可能有一個名稱中沒有點的 Go 模塊?!c)您能否指出任何具有單個 go 模塊和模塊中的多個包的構建設置的工作示例?
查看完整描述

3 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

我可以在一個 go 模塊中包含多個包嗎?

是的當然。

如何?

你什么都不用做,它就可以工作。

(您的問題是:您嘗試以錯誤的名稱導入您的 api 包。模塊內的導入路徑為格式<modulename>/<relative-filepath-from-module-root>。)


查看完整回答
反對 回復 2022-05-18
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

您可以在單個模塊中擁有任意數量的包,請看這里:https ://github.com/alessiosavi/GoGPUtils/

唯一的限制是每個文件夾只能有一個包。


查看完整回答
反對 回復 2022-05-18
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

我發現了問題。該go.mod文件必須位于包含包的文件夾中。就我而言,它位于該文件夾的父級中。工作中。



查看完整回答
反對 回復 2022-05-18
  • 3 回答
  • 0 關注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號