模块和包¶
更新于 2023-11-27
模块¶
模块可以包含若干个包
模块路径¶
用模块路径标识一个模块
模块路径定义在go.mod中
go.mod所在的目录即模块的根目录
模块路径包含仓库路径(网络导入需要路径)
包¶
包包含源文件
包属于一个模块
包路径是模块路径加包路径
示例¶
模块名 "golang.org/x/net"
包在"html"目录
包的路径是 "golang.org/x/net/html"
go.mod¶
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
列出本地包¶
| Bash | |
|---|---|
1 2 3 4 5 | |
关键字¶
| 关键字 | 作用 |
|---|---|
| package | 说明该源文件是属于哪个包 |
| import | 导入依赖的其它包 |
包导入¶
包名匹配导入路径的最后一段
| Go | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
包的初始化¶
包按导入顺序初始化
每个包可以包含init函数,初始化时自动执行
| Go | |
|---|---|
1 2 3 | |
main包¶
当你使用main包时,程序将生成独立的可执行文件
但当程序不是main包的一部分时,Go 不会生成二进制文件。它生成包存档文件(扩展名为 .a 的文件)
包缓存¶
在 Go 里,go mod 下载的依赖会缓存在本地的 module cache 目录,默认在:$GOPATH/pkg/mod
以及下载的 .zip 包会放在:$GOPATH/pkg/mod/cache/download
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |