为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确设置 Golang 库?

如何正确设置 Golang 库?

Go
长风秋雁 2022-12-05 16:56:47
我试过很多次用模块系统设置一个真正的 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


查看完整回答
反对 回复 2022-12-05
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信