我看到从这个例子sqlite3上GitHub:
sqlite3
GitHub
import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" "log" "os" )
并且似乎无法找到 import 语句前面的下划线是什么意思。
它仅用于导入包的副作用。
从Go 规范:
要仅为其副作用(初始化)导入包,请使用空白标识符作为显式包名称: 导入_“lib/数学”
要仅为其副作用(初始化)导入包,请使用空白标识符作为显式包名称:
导入_“lib/数学”
在go-sqlite3的情况下,下划线导入用于sqlite3在init()函数中将驱动程序注册为数据库驱动程序的副作用,而不导入任何其他函数:
init()
sql.Register("sqlite3", &SQLiteDriver{})
一旦以这种方式注册,sqlite3 就可以sql在您的代码中与标准库的接口一起使用,如示例所示:
sql
db, err := sql.Open("sqlite3", "./foo.db")