go导入包但不使用,包前的下划线是干什么的?

是为了引入包而不直接使用这个包中定义的函数,变量等资源。

如果引入包但不使用会报错,前面加个下划线就可以绕开这个问题。

例如MySQL连接初始化

import (
	"database/sql"
	_ "github.com/go-sql-driver/mysql"
)

var (
	Db  *sql.DB
	err error
)

func main() {
	Db, err = sql.Open("mysql", "root:root@tcp(localhost:3306)/db")
}

在创建 sql.DB 之后不能直接使用,需要根据数据库类型做初始化。

引入mysql数据库驱动包之后会自动去调用其中的 init 函数,然后在 init 函数里面注册这个数据库驱动,这样我们就可以在接下来的业务逻辑中直接使用这个数据库驱动了。

你可能感兴趣的:(go,MySQL,golang,开发语言,后端)