go语言基础-包、模块
2021/10/10 23:45:55
本文主要是介绍go语言基础-包、模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
go程序由多个包组成,包是同一目录下编译在一起的源文件的集合。在一个源文件中定义的函数、类型、变量和常量对同一包中的所有其他源文件可见。
一个存储库包含一个或多个模块。模块是一起发布的相关 Go 包的集合。 Go 存储库通常只包含一个模块,位于存储库的根目录。一个名为 go.mod 的文件声明了模块路径:模块中所有包的导入路径前缀。该模块在包含其 go.mod 文件的目录中包含包以及该目录的子目录,直到包含另一个 go.mod 文件(如果有)的下一个子目录。
每个模块的路径不仅用作其包的导入路径前缀,而且还指示 go 命令应该在哪里下载它。例如,为了下载模块 golang.org/x/tools,go 命令将查询 https://golang.org/x/tools 指示的存储库。
新建包
导入路径是用于导入包的字符串。包的导入路径是其模块路径与其在模块内的子目录相连。例如,模块 github.com/google/go-cmp 在目录 cmp/ 中包含一个包。该包的导入路径是 github.com/google/go-cmp/cmp。标准库中的包没有模块路径前缀。
设置GOBIN
go env -w GOBIN=/somewhere/else/bin
要取消设置先前由 go env -w 设置的变量,请使用 go env -u
新建模块
mkdir greetings
cd greetings
go mod init example.com/greetings
// 创建go.mod 用来追踪代码的依赖项。在代码中添加依赖项时,go.mod 文件将列出代码所依赖的版本,这使构建可重现以及控制要使用的模块版本。
// 添加本地依赖
go mod edit -replace example.com/greetings=../greetings
// 下载依赖
go mod tidy
模块依赖会自动下载到 GOPATH 环境变量指示的目录的 pkg/mod 子目录中。
// 删除所有下载的模块
go clean -modcache
安装模块
安装目录由 GOPATH 和 GOBIN 环境变量控制。如果设置了 GOBIN,二进制文件将安装到该目录。如果设置了 GOPATH,二进制文件将安装到 GOPATH 列表中第一个目录的 bin 子目录中。否则,二进制文件将安装到默认 GOPATH($HOME/go 或 %USERPROFILE%\go)的 bin 子目录中。
go install 模块路径
go install example/user/hello
go install .
// 模块目录内
go install
export PATH=$PATH:$(dirname $(go list -f '{{.Target}}' .))
将安装的模块添加到PATH中,方便执行
模块内建包
在模块内新建文件夹,然后编写go 文件,源码文件标识新的包名,然后执行go build 。
go build 不会产生输出文件。它将编译的包保存在本地构建缓存中。
然后使用go install 安装模块
这篇关于go语言基础-包、模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南