我试过很多次用模块系统设置一个真正的 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 关注
- 94 浏览
添加回答
举报
0/150
提交
取消