1 回答

TA貢獻1993條經驗 獲得超6個贊
這不是慣例,您可以隨心所欲地做,但通常的做法是cmd在項目根目錄中有一個文件夾,所有可執行文件都在該文件夾下,每個文件夾都是自己的文件夾。
因此,在您的情況下,一個好的解決方案可能很簡單:
host.com/project/
cmd/
project/
project.go
filea.go
fileb.go
在filea.go和fileb.go包聲明應該是:
package project
在cmd/project/project.go包和導入聲明中應該是:
package main
import "host.com/project"
當然如果你的項目比較復雜,你可以在項目根目錄下創建更多的包,它可能有多個命令(多個main包),例如:
host.com/project/
cmd/
project/
project.go
prjtool/
prjtool.go
packagex/
x.go
packagey/
y.go
filea.go
fileb.go
遵循此布局的示例是非常流行的 Go Delve 調試器(目前 4.5k 星),可在https://github.com/derekparker/delve獲得。
一個非常復雜的存儲庫示例是golang.org/x/tools包,它是多個基本 Go 工具的集合,可在https://github.com/golang/tools/獲得。它的cmd文件夾包含 20 多個子文件夾(命令),許多工具(main包)甚至由多個.go文件組成(但每個文件都使用package main聲明,形成一個可執行文件的包)。
- 1 回答
- 0 關注
- 114 瀏覽
添加回答
舉報