golang 相关

黑暗森林 / 148 /

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"
)

作者
黑暗森林
许可协议
CC BY 4.0
发布于
2023-08-29
修改于
2025-02-09
Bonnie image
尚未登录