go语言学习-包管理
1、概念
1.1 什么是包
***Go语言的包(package) ***是一种源码封装的方式,可以被看做是组相关的,并且通用的代码集合。这些包都有自己的独立的功能,然后在编写代码时,如果需要用到这些功能,可以导入包直接使用。
- 打印一些内容:fmt
- 处理一些时间相关的: time
- 处理一些数学相关的:math
1.2 包的优点
- 可重用性:由于包是独立的功能模块,因此可以重复利用避免重复编写代码。
- 隔离性:不同包之间的变量、函数名等不会相互干扰,有助于代码的可维护性。
- 方便管理:包可以按照功能模块进行划分,便于管理和维护
1.3 内置包和第三方包
- 内置包:由Go语言官方提供,i无需下载即可直接使用,比如: fmt、osnet、math
- 第三方包:由其他开发者或组织提供的包,需要安装后才能使用,比如:gin、beego、gorm等
go官方的包网址,可以直接搜索相关的包,以及相关的方法
1.4 使用包
通过import导入包
import "math" //直接导入
import m "math" //m是别名,后续可以通过m. 去调用方法
import _ "math" //init初始化操作可能会用到
1.5 包的管理
- Go Modules是Golang 1.11版本引入的官方包管理工具,Go mod使用go.mod管理项目依赖包的版本、依赖关系、导入和删除信息。使用Gomod可以非常方便的管理项目依赖的包,以及可以自动处理包和包之间的依赖关系、版本等问题。
- go mod目录:GOPATH -> pkg -> mod -> 下面就是各类依赖
1.6 go.mod使用
1.6.1 开启go mod
go env -w GOPROXY=https://goproxy.cn,direct #配置代理
go env -w GO111MODULE=on #开启go mod
on:开启go mod,从go.mod文件中读取依赖关系
off:关闭go mod,完全依赖GOPATH和vendor目录
auto:开启,只有项目目录下有go.mod文件时才会生效
1.6.2 常用命令
go mod init:初始化一个新模块,并在当前目录下创建go.mod文件
go mod tidy:清理未使用的依赖项,并更新go.mod文件
go mod download:下载当前模块及其依赖项的所有依赖
go mod vendor:将依赖项复制到vendor目录中,便于离线部署
go list -m all:列出当前模块及其依赖项的所有模块和版本
go get:获取指定的包或模块,并将其添加到go.mod文件中
go get -u:更新指定包的版本
go build: 编译成二进制包
go mod help: 查看其他命令
2、自定义包
2.1 定义
Go语言自定义包是Go语言中模块化编程的重要组成部分,通过将代码封装在包中,可以实现更好的代码复用、可维护性和可扩展性。同时,自定义包也可以方便地分享给其他开发者使用,可以提高部门或者团队的开发效率。
- 提高代码复用率
- 实现代码解
- 提高代码可读性
- 提高代码安全性K
- 提供团队开发效率
2.2 如何自定义包
//新建一个目录packagestudy,初始化项目,切换到新建目录下执行