我試過很多次用模塊系統設置一個真正的 go 包并將代碼存儲在pkg. 我找到的所有教程都太基礎了,在頂層創建一個帶有 go 文件存儲的模塊,我不斷地學習no Go files in /usr/local/go/github.com/me/mypackage。我嘗試了很多不同的東西,但我無法讓它正常工作......GOROOT設置為/usr/local/go。我在這里創建了一個包/usr/local/go/github.com/me/mypackage。go.modmodule github.com/me/mypackagego 1.18pkg/main.gopackage mypackage// Add is our function that sums two integersfunc Add(x, y int) (res int) { return x + y}// Subtract subtracts two integersfunc Subtract(x, y int) (res int) { return x - y}pkg/main_test.gopackage mypackageimport "testing"func TestAdd(t *testing.T){ got := Add(4, 6) want := 10 if got != want { t.Errorf("got %q, wanted %q", got, want) }}我跑:go test我究竟做錯了什么?我發現 Go 的設置非常令人沮喪,因為像 Rust 和 NodeJS 這樣的語言/運行時具有非常友好的包管理器并且非常容易設置。我正在嘗試按照本 guidance for structuring go packages中的描述構建一個庫。
1 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
不要混淆模塊和包。一個模塊可能包含多個包。像這樣:
模塊目錄/package1_dir
模塊目錄/package2_dir
試試這個布局:
存儲庫:github.com/me/mymodule
mymodule/mypkg
mymodule/mypkg/mypkg_test.go
mymodule/mypkg/mypkg.go
mymodule/go.mod
在mypkg.go并mypkg_test.go聲明package mypkg。
否則,運行此腳本,它將為您創建正確的布局:
https://gist.github.com/udhos/695d3be51fb4c7d151b4e252cdec3c63
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消