GO: packages 包
Outlinks (1)
Backlinks (1)
Backlinks (1)
go version # go version go1.25.6
1 · packages 包#
go help packages
很多 go 命令都作用于一连串的
包,通常来说,包是可导入的路径(import path)
- 以 / 开头,或以 .、.. 开头:按 文件系统路径 处理,表示该目录下的包
- 非 gomod 模式下,在 env
GOPATH的某个 DIR 下找 DIR/src/{{PACKAGE}}
1.1 · 保留 path 名#
main, all, std, cmd, tool
- tool: 当前模块 go.mod 里定义的工具,可以通过
go install tool下载tool,见Go: modules 模块
1.2 · 匹配
按 完整 import path 匹配,不是按短包名
例如:fmt 可以指标准库的 fmt,但 http 不会匹配 net/http,必须写 net/http
1.3 · 通配符 …
...匹配任意/...匹配任意子包- 通配符不会匹配
vendor,需要显示写,如./vendor/...
1.4 · 其他约定
- 唯一性:import path 必须唯一,可以加唯一前缀如
github.com/user/repo - 特殊用法:如果包是一系列的go文件,仅将这些文件合成一个包(忽略其他文件和build tag)
- 忽略:忽略
.或_开始的目录/文件,以及testdata目录 - 不同包可以有相同包名(文件的package语句),但保留
main/documentation
2 · 思考
- 在 Go 里,真正的“单元”不是函数或类,而是 package(包)
- API 通过包暴露,所以package 是测试的基本单元