回复“Go语言”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
前言
go moudules是Go的一个包管理工具,官方提供的,还是比较靠谱的,最低Go版本要求1.11+。
可以理解为Python的虚拟环境,或者Java的maven,PHP的composer。
其本质解决的问题就是包管理混乱问题。
反正就是,用就完事了,只有好事,没有坏事。
配置(不用管)
GO111MODULE=off # 不适用modules功能
GO111MODULE=off #使用molules功能,不会去GOPATH下找依赖包, 1.11+版本默认开启
GO111MODULE=auto:Golang # Golang自己简则是不是使用modules功能
根据上述命令,可以得到结论,在1.11+版本中,默认就是可以使用go modules的,不需要做其他设置。
它和传统的直接go get区别在哪
go get%GOPATH%/src
%GOPATH%/pkg/mod
并且会带版本号,基本彻底解决依赖问题。
开始使用
创建go.mod文件
go.modrequirement.txt
开始使用
gomod-demo
CMD
go mod init gomod-demo
gomod-demo
go.mod
gomod-demo
go.mod文件说明
module:模块名称。
require:依赖包列表以及版本。
exclude:禁止依赖包列表(仅在当前模块为主模块时生效)。
replace:替换依赖包列表(仅在当前模块为主模块时生效)。
当然,这些基本我们不需要动,都是通过命令或者IDE修改的。
简单使用
xstrings
https://github.com/huandu/xstrings
需要执行此命令安装此包。
执行下载命令。
go.mod文件会自动添加一个依赖包。
代码:
package main
import (
"fmt"
"github.com/huandu/xstrings"
)
func main() {
s := "heheh ADSL附近"
center := xstrings.Count(s, "h")
fmt.Println(center)
}
go连接Mysql
github文档如下。
go get -u github.com/go-sql-driver/mysql
go.mod文件如下。
代码:
package main
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"time"
)
func main() {
//s := "heheh ADSL附近"
//center := xstrings.Count(s, "h")
//fmt.Println(center)
db, err := sql.Open("mysql", "user:password@/dbname")
if err != nil {
panic(err)
}
// See "Important settings" section.
db.SetConnMaxLifetime(time.Minute * 3)
db.SetMaxOpenConns(10)
db.SetMaxIdleConns(10)
}
可能出现的异常
go get 第三方包Go Modules
go mod downloadGo Modules
Go Modulessettings->Go->GoModules(vgo)
go mod所有命令
在当前文件夹下初始化一个新的 module,创建 go.mod 文件:go mod init name
拉取缺少的模块,移除不用的模块:go mod tidy
将依赖复制到 vendor 下:go mod vendor
下载依赖:go mod download
检验依赖:go mod verify
显示模块依赖图:go mod graph
解释为什么需要依赖:go mod why
编辑 go.mod 文件:go eidt
查看命令列表:go mod
查看命令帮助文档:go help mod
总结
上述我们学习了go mod的如何使用。如果在操作过程中有任务问题,记得下面讨论区留言,我们看到会第一时间解决问题。
我是码农星期八,如果觉得还不错,记得动手点赞以下哈,感谢你的观看~
------------------- End -------------------
欢迎大家点赞,转发,转载,感谢大家的相伴与支持