简短答案:
它是用于导入一个包只是为了副作用。
To import a package solely for its side-effects (initialization),use the blank identifier as explicit package name:
import _ “lib/math”
在sqlite3
在go-sqlite3的情况下,下划线导入用于在init()函数中注册sqlite3驱动程序作为数据库驱动程序的副作用,而不导入任何其他函数:
sql.Register("sqlite3",&sqliteDriver{})
一旦以这种方式注册,sqlite3可以与标准库的sql接口在代码中使用,如在示例中:
db,err := sql.Open("sqlite3","./foo.db")