一尘不染

import语句前面的下划线是什么意思?

go

我看到从这个例子sqlite3GitHub

import (
        "database/sql"
        "fmt"
        _ "github.com/mattn/go-sqlite3"
        "log"
        "os"
)

并且似乎无法找到import语句前面的下划线是什么意思。


阅读 381

收藏
2020-07-02

共1个答案

一尘不染

简短答案:

它仅出于副作用导入软件包。

执行规范

要仅出于副作用(初始化)导入软件包,请使用空白标识符作为显式软件包名称:

导入_“ lib / math”

在sqlite3

对于go-sqlite3,下划线导入用于将sqlite3驱动程序注册为该init()函数中的数据库驱动程序的副作用,而无需导入任何其他函数:

sql.Register("sqlite3", &SQLiteDriver{})

以这种方式注册后,可将sqlite3与sql代码中的标准库接口一起使用,如示例所示:

db, err := sql.Open("sqlite3", "./foo.db")
2020-07-02