ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。
https://ckai.xyz
init本地project
go mod init my-local-project
get 指定版本的包
go get github.com/lib/pq@v1.2.0
代码中删除了某个依赖,并且想要从go.mod中清除它
go mod tidy
构建,基于go.mod里的模块版本
go build
go test
重新初始化模块,有时候需要用到,如go build总是不产生可执行程序。
rm go.mod go.sum
go mod init exec_example
go get
go build
国内设置golang proxy
[mxadmin@dw1-cn exec]$ go get github.com/lib/pq
go: module github.com/lib/pq: Get "https://proxy.golang.org/github.com/lib/pq/@v/list": dial tcp 142.251.43.17:443: i/o timeout
[mxadmin@dw1-cn exec]$ go env -w GOPROXY=https://goproxy.cn,direct
[mxadmin@dw1-cn exec]$ go get github.com/lib/pq
go: downloading github.com/lib/pq v1.10.9
go: added github.com/lib/pq v1.10.9
插件、驱动初始化
在Go中,引入一个包并使用下划线作为其别名意味着只初始化该包并调用其init()函数(如果存在),但不使用该包中的任何其他函数或变量。这通常用于那些作为驱动或插件提供的包,这些驱动或插件在被导入时需要进行一些初始化工作。
下面例子导入了github.com/lib/pq包,该包为Go的database/sql提供了PostgreSQL数据库驱动。导入此包的目的是注册该驱动,使其可以在database/sql中使用。实际上,github.com/lib/pq包的init()函数负责这项工作,所以您只需导入它,而不必在代码中显式引用它。
这种导入方式使您可以在程序中使用标准的database/sql接口与PostgreSQL数据库进行交互,而不必直接使用github.com/lib/pq提供的任何特定函数或类型。
import (
"database/sql"
"fmt"
"log"
_ "github.com/lib/pq"
)